You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This documents is to provide guidelines for component authors when
making decisions about what the telemetry of their components should
look like in order to provide a consistent experience to end users.
---------
Signed-off-by: Alex Boten <[email protected]>
Co-authored-by: Daniel Jaglowski <[email protected]>
Co-authored-by: Pablo Baeyens <[email protected]>
The Collector's internal telemetry is an important part of fulfilling
31
+
OpenTelemetry's [project vision](vision.md). The following section explains the
32
+
priorities for making the Collector an observable service.
33
+
34
+
### Observable elements
35
+
36
+
The following aspects of the Collector need to be observable.
37
+
38
+
-[Current values]
39
+
- Some of the current values and rates might be calculated as derivatives of
40
+
cumulative values in the backend, so it's an open question whether to expose
41
+
them separately or not.
42
+
-[Cumulative values]
43
+
-[Trace or log events]
44
+
- For start or stop events, an appropriate hysteresis must be defined to avoid
45
+
generating too many events. Note that start and stop events can't be
46
+
detected in the backend simply as derivatives of current rates. The events
47
+
include additional data that is not present in the current value.
48
+
-[Host metrics]
49
+
- Host metrics can help users determine if the observed problem in a service
50
+
is caused by a different process on the same host.
51
+
52
+
### Impact
53
+
54
+
The impact of these observability improvements on the core performance of the
55
+
Collector must be assessed.
56
+
57
+
### Configurable level of observability
58
+
59
+
Some metrics and traces can be high volume and users might not always want to
60
+
observe them. An observability verbosity “level” allows configuration of the
61
+
Collector to send more or less observability data or with even finer
62
+
granularity, to allow turning on or off specific metrics.
63
+
64
+
The default level of observability must be defined in a way that has
65
+
insignificant performance impact on the service.
66
+
67
+
### Internal telemetry properties
68
+
69
+
Telemetry produced by the Collector has the following properties:
70
+
71
+
- metrics produced by Collector components use the prefix `otelcol_`
72
+
- metrics produced by any instrumentation library used by Collector components will *not* be prefixed with `otelcol_`
73
+
- code is instrumented using the OpenTelemetry API for metrics, and traces. Logs are instrumented using zap. Telemetry is collected and produced via the OpenTelemetry Go SDK
74
+
- instrumentation scope defaults to the package name of the component recording telemetry. It can be configured
75
+
via the `scope_name` option in mdatagen, but the recommendation is to keep the default
76
+
- metrics are defined via `metadata.yaml` except in components that have specific cases where
77
+
it is not possible to do so. See the [issue](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/33523)
78
+
which list such components
79
+
- whenever possible, components should leverage core components or helper libraries to capture
80
+
telemetry, ensuring that all components of the Collector can be consistently observed
81
+
- telemetry produced by components should include attributes that identify specific instances
82
+
of the components
83
+
84
+
#### Units
85
+
86
+
The following units should be used for metrics emitted by the Collector
0 commit comments