-
Notifications
You must be signed in to change notification settings - Fork 211
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
Add SDK Log health metrics #1921
base: main
Are you sure you want to change the base?
Conversation
This PR was marked stale due to lack of activity. It will be closed in 7 days. |
model/otel/metrics.yaml
Outdated
brief: "The number of LogRecords for which the export has finished, either successful or failed" | ||
note: | | ||
For successful exports, `error.type` MUST NOT be set. For failed exports, `error.type` must contain the failure cause. | ||
For exporters with partial success semantics (e.g. OTLP with `rejected_spans`), rejected spans must count as failed and only non-rejected LogRecords count as success. |
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.
does this note about partial success also apply to log exporters? Currently it mentions rejected spans
, which is a copy of the corresponding span metrics, I guess?
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.
Yeah, copy-paste mistake. I even already adjusted the end of the sentence: and only non-rejected LogRecords count as success
related to #1979 |
Follow up of #1631 adding SDK health metrics for logs.
Changes
Adds:
The processor and exporter metrics are very similar to the span-ones in #1631. In fact, they are pretty much a copy-paste.
So I think with the concrete examples at hand now, it would be a good time to revisit the decision and reasoning whether to keep the metrics separated per signal or combine them with and differentiate via an attribute (e.g.
otel.signal.kind
=span
,log
,metric
).The detailed reasoning for separation can be found in this comment.
I still think that reasoning holds for processors: Log and Span Processors do have the same name, but work differently (e.g. span processor has multiple callbacks). Therefore it makes sense to have different namespaces for their metrics to not make things ugly in the future when new, span or log specific metrics need to be added or the processor specs diverge further. This already shows in the fact that metrics do not have processors, but
MetricReaders
.For the exporters I'm not so sure anymore: The exporters are separated in the spec, but it is in fact mostly copy-pasted and I think they are unlikely to diverge. So if we wanted to reduce the size of the spec here and ease some queries (e.g. "are there errors in any exporter?"), we could think of combining them.In the SIG meeting we decided to keep them separate for now, see #2002.
Looking forward to hearing your opinions here!
Merge requirement checklist
[chore]
schema-next.yaml updated with changes to existing conventions.