-
Notifications
You must be signed in to change notification settings - Fork 139
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
Revamp messaging metrics to support generic operations #1006
base: main
Are you sure you want to change the base?
Conversation
4511bc0
to
86ee3c9
Compare
86ee3c9
to
0593db2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @lmolkova, I think this is going in a good direction.
18f8142
to
19cd105
Compare
4010ef2
to
203ebb3
Compare
1b78dd5
to
69bfd72
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot @lmolkova, it feels we're getting quite close!
eae8b8c
to
de27752
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have some smaller remarks, but nothing that should block merging this. I'm looking forward to first prototypes based on these changes.
de27752
to
861abd2
Compare
b8480d3
to
9504ad5
Compare
and
looks like drift on this parts of PR description |
# durations | ||
- id: metric.messaging.client.request.duration | ||
type: metric | ||
metric_name: messaging.client.request.duration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
naming it "request" seems like a good choice over "operation" in order to help mitigate the confusion around whether this also includes "process" times (which have "messaging.operation.name" and so seem like they should be included in anything called "operation")
The metric MUST be reported once per message delivery. For example, if receiving and processing operations are both instrumented for a single message delivery, the number of received messages | ||
is reported when then message is received and not reported for the processing operation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe MUST -> SHOULD?
this could be tricky to implement / coordinate, e.g. when we instrument Spring messaging to capture "process" operations, and Spring uses Kafka polling under the hood which is also instrumented to capture "receive" operation
metric_name: messaging.client.published.messages | ||
brief: "Number of messages producer attempted to publish to the broker." | ||
note: > | ||
This metric MUST NOT count messages that were created, but aren't being published yet. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This metric MUST NOT count messages that were created, but aren't being published yet. | |
This metric MUST NOT count messages that were created but haven't been published yet. |
metric_name: messaging.client.request.duration | ||
brief: "Duration of messaging operation initiated by a producer or consumer." | ||
note: > | ||
This metric SHOULD NOT be used to report processing duration - processing duration is reported in `messaging.process.duration` metric. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This metric SHOULD NOT be used to report processing duration - processing duration is reported in `messaging.process.duration` metric. | |
This metric SHOULD NOT be used to report processing duration - processing duration is reported in `messaging.client.process.duration` metric. |
Fixes #947, #937
Changes
messaging.operation.type
messaging.operation.name
required.{operation} {destination}
)messaging.publish.duration
andmessaging.receive.duration
in onemessaging.client.operation.duration
messaging.publish.messages
tomessaging.client.produced.messages
messaging.receive.messages
andmessaging.process.messages
in onemessaging.client.consumed.messages
messaging.process.duration
tomessaging.client.process.duration
Merge requirement checklist
[chore]