Skip to content

Commit d942f2b

Browse files
doltiffany76odubajDT
authored
docs(collector): update internal telemetry RPC metrics (#9554)
Co-authored-by: Tiffany Hrabusa <30397949+tiffany76@users.noreply.github.com> Co-authored-by: odubajDT <93584209+odubajDT@users.noreply.github.com>
1 parent 26a8285 commit d942f2b

File tree

2 files changed

+57
-30
lines changed

2 files changed

+57
-30
lines changed

content/en/docs/collector/internal-telemetry.md

Lines changed: 49 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Internal telemetry
33
weight: 25
4-
cSpell:ignore: alloc batchprocessor journalctl
4+
cSpell:ignore: alloc batchprocessor journalctl otelgrpc
55
---
66

77
You can inspect the health of any OpenTelemetry Collector instance by checking
@@ -375,7 +375,7 @@ naming conventions, resulting in metric names that looked like
375375
Versions 0.120.0 and later of the Collector use Prometheus 3.0 scrapers, so the
376376
original `http*` and `rpc*` metric names with dots are preserved. The
377377
[internal metrics](#lists-of-internal-metrics) on this page are listed in their
378-
original form, such as`rpc.server.duration`. For more information, see the
378+
original form, such as `rpc.server.call.duration`. For more information, see the
379379
[Collector v0.120.0 release notes](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/CHANGELOG.md#v01200).
380380

381381
### Lists of internal metrics
@@ -453,35 +453,54 @@ files in the repository.
453453

454454
#### Additional `detailed`-level metrics
455455

456-
| Metric name | Description | Type |
457-
| ----------------------------------------------------- | ----------------------------------------------------------------------------------------- | --------- |
458-
| `http.client.request.body.size` | Measures the size of HTTP client request bodies. | Counter |
459-
| `http.client.request.duration` | Measures the duration of HTTP client requests. | Histogram |
460-
| `http.server.request.body.size` | Measures the size of HTTP server request bodies. | Counter |
461-
| `http.server.request.duration` | Measures the duration of HTTP server requests. | Histogram |
462-
| `http.server.response.body.size` | Measures the size of HTTP server response bodies. | Counter |
463-
| `otelcol_processor_batch_batch_`<br>`send_size_bytes` | Number of bytes in the batch that was sent. | Histogram |
464-
| `rpc.client.duration` | Measures the duration of outbound RPC. | Histogram |
465-
| `rpc.client.request.size` | Measures the size of RPC request messages (uncompressed). | Histogram |
466-
| `rpc.client.requests_per_rpc` | Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs. | Histogram |
467-
| `rpc.client.response.size` | Measures the size of RPC response messages (uncompressed). | Histogram |
468-
| `rpc.client.responses_per_rpc` | Measures the number of messages sent per RPC. Should be 1 for all non-streaming RPCs. | Histogram |
469-
| `rpc.server.duration` | Measures the duration of inbound RPC. | Histogram |
470-
| `rpc.server.request.size` | Measures the size of RPC request messages (uncompressed). | Histogram |
471-
| `rpc.server.requests_per_rpc` | Measures the number of messages received per RPC. Should be 1 for all non-streaming RPCs. | Histogram |
472-
| `rpc.server.response.size` | Measures the size of RPC response messages (uncompressed). | Histogram |
473-
| `rpc.server.responses_per_rpc` | Measures the number of messages sent per RPC. Should be 1 for all non-streaming RPCs. | Histogram |
456+
| Metric name | Description | Type |
457+
| ----------------------------------------------------- | --------------------------------------------------------------- | --------- |
458+
| `http.client.request.body.size` | Measures the size of HTTP client request bodies. | Counter |
459+
| `http.client.request.duration` | Measures the duration of HTTP client requests. | Histogram |
460+
| `http.server.request.body.size` | Measures the size of HTTP server request bodies. | Counter |
461+
| `http.server.request.duration` | Measures the duration of HTTP server requests. | Histogram |
462+
| `http.server.response.body.size` | Measures the size of HTTP server response bodies. | Counter |
463+
| `otelcol_processor_batch_batch_`<br>`send_size_bytes` | Number of bytes in the batch that was sent. | Histogram |
464+
| `rpc.client.call.duration` | Measures the duration of outbound remote procedure calls (RPC). | Histogram |
465+
| `rpc.server.call.duration` | Measures the duration of inbound remote procedure calls (RPC). | Histogram |
474466

475-
> [!NOTE]
476-
>
477-
> The `http*` and `rpc*` metrics are not covered by the maturity levels below
478-
> since they are not under the Collector SIG control.
479-
>
480-
> The `otelcol_processor_batch_` metrics are unique to the `batchprocessor`.
481-
>
482-
> The `otelcol_receiver_`, `otelcol_scraper_`, `otelcol_processor_`, and
483-
> `otelcol_exporter_` metrics come from their respective `helper` packages. As
484-
> such, some components not using those packages might not emit them.
467+
#### Ownership of emitted metrics
468+
469+
Some metrics are not owned by the Collector SIG and some are limited to certain
470+
components.
471+
472+
**`http*`and `rpc` metrics**
473+
474+
These metrics are not under the Collector SIG's control, and as such, are not
475+
covered by the maturity levels below.
476+
477+
**`rpc` metrics**
478+
479+
The Collector's internal RPC metrics come from the upstream
480+
[`otelgrpc`](https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/google.golang.org/grpc/otelgrpc)
481+
instrumentation, which tracks the
482+
[OpenTelemetry RPC semantic conventions](/docs/specs/semconv/rpc/rpc-metrics/).
483+
The set of RPC metrics emitted by the Collector has changed across releases:
484+
485+
| Collector version | Emitted RPC metrics |
486+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
487+
| v0.146.x and earlier | `rpc.client.duration`, `rpc.server.duration`, `rpc.*.request.size`, `rpc.*.response.size`, `rpc.*.requests_per_rpc`, `rpc.*.responses_per_rpc` |
488+
| v0.147.0 | `rpc.client.call.duration`, `rpc.server.call.duration`, `rpc.*.request.size`, `rpc.*.response.size` (the `*_per_rpc` metrics are deprecated and no longer emitted) |
489+
| v0.148.0 and later | `rpc.client.call.duration`, `rpc.server.call.duration` only |
490+
491+
RPC size metrics are not emitted by Collector v0.148.0 or later. The
492+
[RPC semantic conventions v1.40.0](https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.40.0)
493+
deprecated them due to ambiguous definitions and inconsistent implementation.
494+
495+
**`otelcol_processor_batch_*` metrics**
496+
497+
These metrics are unique to the `batchprocessor`.
498+
499+
**`helper` package metrics**
500+
501+
The `otelcol_receiver_`, `otelcol_scraper_`, `otelcol_processor_`, and
502+
`otelcol_exporter_` metrics come from their respective `helper` packages. As
503+
such, some components not using those packages might not emit them.
485504

486505
### Events observable with internal logs
487506

static/refcache.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11623,6 +11623,10 @@
1162311623
"StatusCode": 206,
1162411624
"LastSeen": "2026-03-17T10:01:02.031229255Z"
1162511625
},
11626+
"https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/google.golang.org/grpc/otelgrpc": {
11627+
"StatusCode": 206,
11628+
"LastSeen": "2026-04-18T20:56:37.309954588Z"
11629+
},
1162611630
"https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrumentation/host": {
1162711631
"StatusCode": 206,
1162811632
"LastSeen": "2026-03-17T10:01:02.546647801Z"
@@ -15903,6 +15907,10 @@
1590315907
"StatusCode": 206,
1590415908
"LastSeen": "2026-04-15T10:04:40.761783142Z"
1590515909
},
15910+
"https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.40.0": {
15911+
"StatusCode": 206,
15912+
"LastSeen": "2026-04-18T20:56:41.578659277Z"
15913+
},
1590615914
"https://github.com/open-telemetry/semantic-conventions/tree/v1.26.0": {
1590715915
"StatusCode": 206,
1590815916
"LastSeen": "2026-03-18T09:57:31.902043431Z"

0 commit comments

Comments
 (0)