OpenTelemetry Botocore Instrumentation¶
Instrument Botocore to trace service requests.
There are two options for instrumenting code. The first option is to use the
opentelemetry-instrument
executable which will automatically
instrument your Botocore client. The second is to programmatically enable
instrumentation via the following code:
Usage¶
from opentelemetry import trace
from opentelemetry.instrumentation.botocore import BotocoreInstrumentor
from opentelemetry.sdk.trace import TracerProvider
import botocore
trace.set_tracer_provider(TracerProvider())
# Instrument Botocore
BotocoreInstrumentor().instrument(
tracer_provider=trace.get_tracer_provider()
)
# This will create a span with Botocore-specific attributes
session = botocore.session.get_session()
session.set_credentials(
access_key="access-key", secret_key="secret-key"
)
ec2 = self.session.create_client("ec2", region_name="us-west-2")
ec2.describe_instances()
API¶
-
class
opentelemetry.instrumentation.botocore.
BotocoreInstrumentor
[source]¶ Bases:
opentelemetry.instrumentation.instrumentor.BaseInstrumentor
A instrumentor for Botocore
See
BaseInstrumentor
-
opentelemetry.instrumentation.botocore.
deep_getattr
(obj, attr_string, default=None)[source]¶ Returns the attribute of
obj
at the dotted path given byattr_string
, if no such attribute is reachable, returnsdefault
.>>> deep_getattr(cass, "cluster") <cassandra.cluster.Cluster object at 0xa20c350
>>> deep_getattr(cass, "cluster.metadata.partitioner") u"org.apache.cassandra.dht.Murmur3Partitioner"
>>> deep_getattr(cass, "i.dont.exist", default="default") "default"