OpenTelemetry Metrics SDK

Start the Collector locally to see data being exported. Write the following file:

# otel-collector-config.yaml
receivers:
    otlp:
        protocols:
            grpc:
                endpoint: 0.0.0.0:4317

exporters:
    logging:

processors:
    batch:

service:
    pipelines:
        metrics:
            receivers: [otlp]
            exporters: [logging]

Then start the Docker container:

docker run \
    -p 4317:4317 \
    -v $(pwd)/otel-collector-config.yaml:/etc/otel/config.yaml \
    otel/opentelemetry-collector-contrib:latest
$ python example.py

The resulting metrics will appear in the output from the collector and look similar to this:

ScopeMetrics #0
ScopeMetrics SchemaURL:
InstrumentationScope getting-started 0.1.2
Metric #0
Descriptor:
     -> Name: counter
     -> Description:
     -> Unit:
     -> DataType: Sum
     -> IsMonotonic: true
     -> AggregationTemporality: Cumulative
NumberDataPoints #0
StartTimestamp: 2024-08-09 11:21:42.145179 +0000 UTC
Timestamp: 2024-08-09 11:21:42.145325 +0000 UTC
Value: 1
Metric #1
Descriptor:
     -> Name: updown_counter
     -> Description:
     -> Unit:
     -> DataType: Sum
     -> IsMonotonic: false
     -> AggregationTemporality: Cumulative
NumberDataPoints #0
StartTimestamp: 2024-08-09 11:21:42.145202 +0000 UTC
Timestamp: 2024-08-09 11:21:42.145325 +0000 UTC
Value: -4
Metric #2
Descriptor:
     -> Name: histogram
     -> Description:
     -> Unit:
     -> DataType: Histogram
     -> AggregationTemporality: Cumulative
HistogramDataPoints #0
StartTimestamp: 2024-08-09 11:21:42.145221 +0000 UTC
Timestamp: 2024-08-09 11:21:42.145325 +0000 UTC
Count: 1