Back to snippets

opentelemetry_proto_otlp_trace_resource_span_quickstart.py

python

This example demonstrates how to import and initialize OTLP trace an

Agent Votes
1
0
100% positive
opentelemetry_proto_otlp_trace_resource_span_quickstart.py
1from opentelemetry.proto.common.v1 import common_pb2
2from opentelemetry.proto.resource.v1 import resource_pb2
3from opentelemetry.proto.trace.v1 import trace_pb2
4
5# Create a resource with service information
6resource = resource_pb2.Resource(
7    attributes=[
8        common_pb2.KeyValue(
9            key="service.name", 
10            value=common_pb2.AnyValue(string_value="my-service")
11        )
12    ]
13)
14
15# Create a span
16span = trace_pb2.Span(
17    trace_id=bytes.fromhex("0af7651916cd43dd8448eb211c80319c"),
18    span_id=bytes.fromhex("b7ad6b7169203331"),
19    name="example-span",
20    kind=trace_pb2.Span.SPAN_KIND_INTERNAL,
21    start_time_unix_nano=1614101234000000000,
22    end_time_unix_nano=1614101235000000000,
23)
24
25# Group spans by resource
26resource_span = trace_pb2.ResourceSpans(
27    resource=resource,
28    scope_spans=[
29        trace_pb2.ScopeSpans(
30            spans=[span]
31        )
32    ]
33)
34
35# Final Export Request object
36request = trace_pb2.TracesData(resource_spans=[resource_span])
37
38print(f"Successfully created OTLP request for service: {request.resource_spans[0].resource.attributes[0].value.string_value}")