Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Log AMQP connection name and container-id (backport #11975) #11977

Merged
merged 1 commit into from
Aug 12, 2024

Conversation

mergify[bot]
Copy link

@mergify mergify bot commented Aug 12, 2024

Fixes #11958 and supersedes #11961

What

Log container-id and connection name.
Example JSON log:

{"time":"2024-08-12 17:08:12.451830+02:00","level":"info","msg":"accepting AMQP connection [::1]:57213 -> [::1]:5672","pid":"<0.1078.0>","domain":"rabbitmq.connection"}
{"time":"2024-08-12 17:08:12.461291+02:00","level":"debug","msg":"User 'guest' authenticated successfully by backend rabbit_auth_backend_internal","pid":"<0.1078.0>","domain":"rabbitmq","connection":"[::1]:57213 -> [::1]:5672"}
{"time":"2024-08-12 17:08:12.461633+02:00","level":"info","msg":"Connection from AMQP 1.0 container 'my container ID': user 'guest' authenticated and granted access to vhost '/'","pid":"<0.1078.0>","domain":"rabbitmq.connection","connection":"[::1]:57213 -> [::1]:5672","amqp_container":"my container ID"}
{"time":"2024-08-12 17:08:12.461712+02:00","level":"debug","msg":"AMQP 1.0 connection.open frame: hostname = localhost, extracted vhost = /, idle-time-out = {uint,\n                                                                                            30000}","pid":"<0.1078.0>","domain":"rabbitmq","connection":"[::1]:57213 -> [::1]:5672","amqp_container":"my container ID"}
{"time":"2024-08-12 17:08:12.465915+02:00","level":"debug","msg":"AMQP 1.0 created session process <0.1084.0> for channel number 0","pid":"<0.1078.0>","domain":"rabbitmq","connection":"[::1]:57213 -> [::1]:5672","amqp_container":"my container ID"}

{"time":"2024-08-12 17:08:14.467547+02:00","level":"debug","msg":"AMQP 1.0 closed session process <0.1084.0> with channel number 0","pid":"<0.1078.0>","domain":"rabbitmq","connection":"[::1]:57213 -> [::1]:5672","amqp_container":"my container ID"}
{"time":"2024-08-12 17:08:14.467805+02:00","level":"info","msg":"closing AMQP connection ([::1]:57213 -> [::1]:5672)","pid":"<0.1078.0>","domain":"rabbitmq.connection","connection":"[::1]:57213 -> [::1]:5672","amqp_container":"my container ID"}

If JSON logging is not used, this commit still includes the container-ID once at info level:

2024-08-12 17:09:09.124945+02:00 [info] <0.1034.0> accepting AMQP connection [::1]:57276 -> [::1]:5672
2024-08-12 17:09:09.134166+02:00 [debug] <0.1034.0> User 'guest' authenticated successfully by backend rabbit_auth_backend_internal
2024-08-12 17:09:09.134457+02:00 [info] <0.1034.0> Connection from AMQP 1.0 container 'my container ID': user 'guest' authenticated and granted access to vhost '/'
2024-08-12 17:09:09.134521+02:00 [debug] <0.1034.0> AMQP 1.0 connection.open frame: hostname = localhost, extracted vhost = /, idle-time-out = {uint,
2024-08-12 17:09:09.134521+02:00 [debug] <0.1034.0>                                                                                             30000}
2024-08-12 17:09:09.138513+02:00 [debug] <0.1034.0> AMQP 1.0 created session process <0.1040.0> for channel number 0

2024-08-12 17:09:11.140208+02:00 [debug] <0.1034.0> AMQP 1.0 closed session process <0.1040.0> with channel number 0
2024-08-12 17:09:11.140504+02:00 [info] <0.1034.0> closing AMQP connection ([::1]:57276 -> [::1]:5672)

Why?

See #11958 and https://www.rabbitmq.com/docs/connections#client-provided-names

To provide a similar feature to AMQP 0.9.1 this commit uses container-id as sent by the client in the open frame.

Examples of containers are brokers and client applications.

The advantage is that the container-id is mandatory. Hence, in AMQP 1.0, we can enforce the desired behaviour that we document on our website for AMQP 0.9.1:

The name is optional; however, developers are strongly encouraged to provide one as it would significantly simplify certain operational tasks.


This is an automatic backport of pull request #11975 done by Mergify.

* Log AMQP connection name and container-id

Fixes #11958

 ## What
Log container-id and connection name.
Example JSON log:
```
{"time":"2024-08-12 10:49:44.365724+02:00","level":"info","msg":"accepting AMQP connection [::1]:56754 -> [::1]:5672","pid":"<0.1164.0>","domain":"rabbitmq.connection"}
{"time":"2024-08-12 10:49:44.381244+02:00","level":"debug","msg":"User 'guest' authenticated successfully by backend rabbit_auth_backend_internal","pid":"<0.1164.0>","domain":"rabbitmq","connection":"[::1]:56754 -> [::1]:5672"}
{"time":"2024-08-12 10:49:44.381578+02:00","level":"info","msg":"AMQP 1.0 connection from container 'my container ID': user 'guest' authenticated and granted access to vhost '/'","pid":"<0.1164.0>","domain":"rabbitmq.connection","connection":"[::1]:56754 -> [::1]:5672","container_id":"my container ID"}
{"time":"2024-08-12 10:49:44.381654+02:00","level":"debug","msg":"AMQP 1.0 connection.open frame: hostname = localhost, extracted vhost = /, idle-time-out = {uint,\n                                                                                            30000}","pid":"<0.1164.0>","domain":"rabbitmq","connection":"[::1]:56754 -> [::1]:5672","container_id":"my container ID"}
{"time":"2024-08-12 10:49:44.386412+02:00","level":"debug","msg":"AMQP 1.0 created session process <0.1170.0> for channel number 0","pid":"<0.1164.0>","domain":"rabbitmq","connection":"[::1]:56754 -> [::1]:5672","container_id":"my container ID"}

{"time":"2024-08-12 10:49:46.387957+02:00","level":"debug","msg":"AMQP 1.0 closed session process <0.1170.0> with channel number 0","pid":"<0.1164.0>","domain":"rabbitmq","connection":"[::1]:56754 -> [::1]:5672","container_id":"my container ID"}
{"time":"2024-08-12 10:49:46.388201+02:00","level":"info","msg":"closing AMQP connection ([::1]:56754 -> [::1]:5672)","pid":"<0.1164.0>","domain":"rabbitmq.connection","connection":"[::1]:56754 -> [::1]:5672","container_id":"my container ID"}
```

If JSON logging is not used, this commit still includes the container-ID
once at info level:
```
2024-08-12 10:48:57.451580+02:00 [info] <0.1164.0> accepting AMQP connection [::1]:56715 -> [::1]:5672
2024-08-12 10:48:57.465924+02:00 [debug] <0.1164.0> User 'guest' authenticated successfully by backend rabbit_auth_backend_internal
2024-08-12 10:48:57.466289+02:00 [info] <0.1164.0> AMQP 1.0 connection from container 'my container ID': user 'guest' authenticated and granted access to vhost '/'
2024-08-12 10:48:57.466377+02:00 [debug] <0.1164.0> AMQP 1.0 connection.open frame: hostname = localhost, extracted vhost = /, idle-time-out = {uint,
2024-08-12 10:48:57.466377+02:00 [debug] <0.1164.0>                                                                                             30000}
2024-08-12 10:48:57.470800+02:00 [debug] <0.1164.0> AMQP 1.0 created session process <0.1170.0> for channel number 0

2024-08-12 10:48:59.472928+02:00 [debug] <0.1164.0> AMQP 1.0 closed session process <0.1170.0> with channel number 0
2024-08-12 10:48:59.473332+02:00 [info] <0.1164.0> closing AMQP connection ([::1]:56715 -> [::1]:5672)
```

 ## Why?
See #11958 and https://www.rabbitmq.com/docs/connections#client-provided-names

To provide a similar feature to AMQP 0.9.1 this commit uses container-id as sent by the client in the open frame.
> Examples of containers are brokers and client applications.

The advantage is that the `container-id` is mandatory. Hence, in AMQP 1.0, we can enforce the desired behaviour that we document on our website for AMQP 0.9.1:
> The name is optional; however, developers are strongly encouraged to provide one as it would significantly simplify certain operational tasks.

* Clarify that container refers to AMQP 1.0

Rename container_id to amqp_container and change log message such that
it's unambigious that the word "container" refers to AMQP 1.0 containers
(to reduce confusion with the meaning of "container" in Docker / Kubernetes).

(cherry picked from commit 10a309d)
@mergify mergify bot assigned ansd Aug 12, 2024
@ansd ansd merged commit 4f1a05b into v4.0.x Aug 12, 2024
197 checks passed
@ansd ansd deleted the mergify/bp/v4.0.x/pr-11975 branch August 12, 2024 17:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant