This commit is contained in:
Leighton Chen 2023-03-08 10:51:17 -08:00
Родитель 95cf300cb1
Коммит d49268f783
4 изменённых файлов: 61 добавлений и 1 удалений

Просмотреть файл

@ -8,7 +8,7 @@ This distro automatically installs the following libraries:
## Officially supported instrumentations ## Officially supported instrumentations
The following OpenTelemetry instrumentations come bundled in with the Azure monitor distro. If you would like to add support for another OpenTelemetry instrumentation, please submit a feature [request][distro_feature_request]. In the meantime, you can use the OpenTelemetry instrumentation manually via it's own APIs (i.e. `instrument()`) in your code. The following OpenTelemetry instrumentations come bundled in with the Azure monitor distro. If you would like to add support for another OpenTelemetry instrumentation, please submit a feature [request][distro_feature_request]. In the meantime, you can use the OpenTelemetry instrumentation manually via it's own APIs (i.e. `instrument()`) in your code. See [this][samples_manual] for an example.
* [OpenTelemetry Django Instrumentation][opentelemetry_instrumentation_django] * [OpenTelemetry Django Instrumentation][opentelemetry_instrumentation_django]
* [OpenTelemetry FastApi Instrumentation][opentelemetry_instrumentation_fastapi] * [OpenTelemetry FastApi Instrumentation][opentelemetry_instrumentation_fastapi]
@ -131,3 +131,4 @@ Samples are available [here][samples] to demonstrate how to utilize the above co
[python]: https://www.python.org/downloads/ [python]: https://www.python.org/downloads/
[pip]: https://pypi.org/project/pip/ [pip]: https://pypi.org/project/pip/
[samples]: https://github.com/microsoft/ApplicationInsights-Python/tree/main/azure-monitor-opentelemetry/samples [samples]: https://github.com/microsoft/ApplicationInsights-Python/tree/main/azure-monitor-opentelemetry/samples
[samples_manual]: https://github.com/microsoft/ApplicationInsights-Python/tree/main/azure-monitor-opentelemetry/samples/tracing/manual.py

Просмотреть файл

@ -14,6 +14,7 @@ configure_azure_monitor(
tracing_export_interval_millis=15000, tracing_export_interval_millis=15000,
) )
# Database calls using the psycopg2 library will be automatically captured
cnx = psycopg2.connect(database="test", user="<user>", password="<password>") cnx = psycopg2.connect(database="test", user="<user>", password="<password>")
cursor = cnx.cursor() cursor = cnx.cursor()
cursor.execute("INSERT INTO test_tables (test_field) VALUES (123)") cursor.execute("INSERT INTO test_tables (test_field) VALUES (123)")

Просмотреть файл

@ -0,0 +1,31 @@
# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License in the project root for
# license information.
# --------------------------------------------------------------------------
from sqlalchemy import create_engine, text
from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry.instrumentation.sqlalchemy import SQLAlchemyInstrumentor
configure_azure_monitor(
connection_string="<your-connection-string>",
tracing_export_interval_millis=15000,
disable_logging=True,
disable_metrics=True,
)
engine = create_engine("sqlite:///:memory:")
# SQLAlchemy instrumentation is not officially supported by this package
# However, you can use the OpenTelemetry instument method manually in
# conjunction with configure_azure_monitor
SQLAlchemyInstrumentor().instrument(
engine=engine,
)
# Database calls using the SqlAlchemy library will be automatically captured
with engine.connect() as conn:
result = conn.execute(text("select 'hello world'"))
print(result.all())
input()

Просмотреть файл

@ -0,0 +1,27 @@
# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License in the project root for
# license information.
# --------------------------------------------------------------------------
from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace
configure_azure_monitor(
connection_string="<your-connection-string>",
# Sampling ratio of between 0 and 1 inclusive
# 0.1 means approximately 10% of your traces are sent
sampling_ratio=0.1,
tracing_export_interval_millis=15000,
disable_logging=True,
disable_metrics=True,
)
tracer = trace.get_tracer(__name__)
for i in range(100):
# Approximately 90% of these spans should be sampled out
with tracer.start_as_current_span("hello"):
print("Hello, World!")
input()