Python için Azure İzleyici Opentelemetry Distro istemci kitaplığı - sürüm 1.1.1
Opentelemetry Python'ın Azure İzleyici Dağıtımı, bir Opentelemetry Azure İzleyici izleme çözümü için kullanılabilen birden çok yüklenebilir bileşen sağlar. Python uygulamalarınızı azure izleyicisi dışarı aktarmaları aracılığıyla telemetriyi yakalamak ve Azure İzleyici'ye raporlamak için izlemenize olanak tanır.
Bu dağıtım aşağıdaki kitaplıkları otomatik olarak yükler:
- Azure İzleyici OpenTelemetry dışarı aktarmaları
- Aşağıda listelendiği gibi resmi olarak desteklenen OpenTelemetry izlemelerinin bir alt kümesi.
Resmi olarak desteklenen izlemeler
OpenTelemetry izlemeleri, temel alınan izleme kitaplıklarından gönderilen isteklerin otomatik olarak toplanmasına olanak sağlar. Aşağıda, Azure İzleyici dağıtımıyla birlikte gelen OpenTelemetry izlemelerinin listesi yer alır. Bu izlemeler varsayılan olarak etkindir. Bu izlemeleri geri çevirme hakkında bilgi için aşağıdaki Kullanım bölümüne bakın.
Başka bir OpenTelemetry izlemesi için destek eklemek istiyorsanız lütfen bir özellik isteği gönderin. Bu arada, OpenTelemetry izlemesini kodunuzda kendi API'leri (örneğin instrument()
) aracılığıyla el ile kullanabilirsiniz. Bir örnek için buna bakın.
Önemli kavramlar
Bu paket, telemetri verilerinin toplanmasına ve Azure İzleyici'ye gönderilmesine olanak tanımak için bir dizi OpenTelemetry ve Azure İzleyici bileşeni paketlemektedir. EL İle izleme için işlevini kullanın configure_azure_monitor
. OTOMATIK izleme henüz desteklenmiyor.
Bunu gerçekleştirmenin ana bileşenleri Azure İzleyici OpenTelemetry dışarı aktarmalarıdır . İhracatçıları ve API'lerini doğrudan bu paket üzerinden kullanabileceksiniz. OpenTelemetry ve Azure İzleyici bileşenlerinin telemetri toplamayı ve dışarı aktarmayı etkinleştirmede nasıl çalıştığını anlamak için lütfen dışarı aktarma belgelerine gidin.
Şu anda OpenTelemetry'de kullanılabilen tüm izlemeler beta durumundadır, yani kararlı değildir ve gelecekte hataya neden olan değişiklikler olabilir. Bunları daha kararlı bir duruma göndermek için çalışmalar yapılmaktadır.
Başlarken
Önkoşullar
Bu paketi kullanmak için aşağıdakilere sahip olmanız gerekir:
- Azure aboneliği - Ücretsiz hesap oluşturma
- Azure İzleyici - Uygulama içgörülerini kullanma
- Opentelemetry SDK - Python için Opentelemetry SDK
- Python 3.7 veya üzeri - Python'ı yükleme
Paketi yükleme
Pip ile Azure İzleyici Opentelemetry Distro'sını yükleyin:
pip install azure-monitor-opentelemetry
Kullanım
Azure İzleyici'ye uygulamanız için izleme ayarlamak için kullanabilirsiniz configure_azure_monitor
. configure_azure_monitor
aşağıdaki isteğe bağlı bağımsız değişkenleri destekler. Tüm geçiş parametreleri ilgili ortam değişkenlerine göre önceliklidir.
Parametre | Açıklama | Ortam Değişkeni |
---|---|---|
connection_string |
Application Insights kaynağınız için bağlantı dizesi. bağlantı dizesi açıkça geçirilmemesi durumunda ortam değişkeninden APPLICATIONINSIGHTS_CONNECTION_STRING otomatik olarak doldurulur. |
APPLICATIONINSIGHTS_CONNECTION_STRING |
logger_name |
Altında telemetrinin toplandığı Python günlükçüsünün adı. | N/A |
instrumentation_options |
Hangi izlemelerin etkinleştirileceğini veya devre dışı bırakıldığını belirleyen iç içe yerleştirilmiş sözlük. İzlemeler , Kitaplık Adları ile adlandırılır. Örneğin, {"azure_sdk": {"enabled": False}, "flask": {"enabled": False}, "django": {"enabled": True}} Azure Core İzleme'yi ve Flask izlemesini devre dışı bırakır ancak Django ve diğer varsayılan izlemeleri etkin bırakır. Aşağıda OTEL_PYTHON_DISABLED_INSTRUMENTATIONS açıklanan ortam değişkeni, izlemeleri devre dışı bırakmak için de kullanılabilir. |
N/A |
Şunun gibi OpenTelemetry ortam değişkenleriyle daha fazla yapılandırma yapabilirsiniz: | Ortam Değişkeni | Açıklama | |-------------|----------------------| | OTEL_SERVICE_NAME, OTEL_RESOURCE_ATTRIBUTES | Uygulamanızla ilişkili OpenTelemetry kaynağını belirtir. | | OTEL_LOGS_EXPORTER
| olarak ayarlanırsa None
, günlük telemetrisinin toplanmasını ve dışarı aktarılmasını devre dışı bırakır. | | OTEL_METRICS_EXPORTER
| olarak ayarlanırsa None
, ölçüm telemetrisinin toplanmasını ve dışarı aktarılmasını devre dışı bırakır. | | OTEL_TRACES_EXPORTER
| olarak ayarlanırsa None
, dağıtılmış izleme telemetrisinin toplanmasını ve dışarı aktarılmasını devre dışı bırakır. | | OTEL_BLRP_SCHEDULE_DELAY
| Günlüğe kaydetme dışarı aktarma aralığını milisaniye cinsinden belirtir. Varsayılan değer 5000'tir. | | OTEL_BSP_SCHEDULE_DELAY
| Dağıtılmış izleme dışarı aktarma aralığını milisaniye cinsinden belirtir. Varsayılan değer 5000'tir. | | OTEL_TRACES_SAMPLER_ARG
| Örneklenecek dağıtılmış izleme telemetrisinin oranını belirtir. Kabul edilen değerler [0,1] aralığındadır. Varsayılan değer 1.0'dır; başka bir deyişle telemetri örnekleme yapılmaz. | | OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
| Desteklenen izlemelerden hangilerinin devre dışı bırakılması gerekir belirtir. Devre dışı bırakılan izlemeler öğesinin configure_azure_monitor
bir parçası olarak izlenmez. Ancak, bunlar doğrudan el ile izlenebilir instrument()
. Küçük harf kitaplık adlarının virgülle ayrılmış bir listesini kabul eder. Örneğin, Psycopg2 ve FastAPI izlemelerini devre dışı bırakmak için olarak ayarlayın "psycopg2,fastapi"
. Varsayılan olarak boş bir liste kullanılır ve desteklenen tüm izlemeler etkinleştirilir. | | OTEL_EXPERIMENTAL_RESOURCE_DETECTORS
| Kaynak Öznitelikleri oluşturmak için kullanılacak Kaynak Algılayıcılarını belirtmek için kullanılan deneysel bir OpenTelemetry ortam değişkeni. Bu deneysel bir özelliktir ve bu değişkenin adı ve davranışı geriye dönük olmayan uyumlu bir şekilde değişebilir. Azure App Service ve Azure VM için Azure Kaynak Algılayıcıları'nı etkinleştirmek için varsayılan olarak "azure_app_service,azure_vm" kullanılır. Belirli kaynak algılayıcılarını eklemek veya kaldırmak için ortam değişkenini uygun şekilde ayarlayın. Daha fazla bilgi için OpenTelemetry Python Kaynak Algılayıcısı Belgelerine bakın . |
Azure İzleyici OpenTelemetry Exporter yapılandırmaları
Azure İzleyici OpenTelemetry dışarı aktarma yapılandırma parametrelerini doğrudan içine configure_azure_monitor
geçirebilirsiniz. Dışarı aktarmayla ilgili ek yapılandırmaya buradan göz atın.
...
configure_azure_monitor(
connection_string="<your-connection-string>",
disable_offline_storage=True,
)
...
Örnekler
Yukarıdaki yapılandırma seçeneklerinin nasıl kullanılabilmesini göstermek için burada örnekler mevcuttur.
Azure İşlevleri'de izleme
bağıntıyı izleme
Azure İşlevleri'de barındırılan Python uygulamanıza gelen izlenen gelen istekler, içinde izlenen telemetri verileriyle otomatik olarak ilişkilendirilmeyecektir. aşağıda gösterildiği gibi doğrudan ayıklayarak izleme bağıntısını TraceContext
el ile elde edebilirsiniz:
import azure.functions as func
from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace
from opentelemetry.propagate import extract
# Configure Azure monitor collection telemetry pipeline
configure_azure_monitor()
def main(req: func.HttpRequest, context) -> func.HttpResponse:
...
# Store current TraceContext in dictionary format
carrier = {
"traceparent": context.trace_context.Traceparent,
"tracestate": context.trace_context.Tracestate,
}
tracer = trace.get_tracer(__name__)
# Start a span using the current context
with tracer.start_as_current_span(
"http_trigger_span",
context=extract(carrier),
):
...
Günlüğe kaydetme sorunları
Azure İşlevleri çalışanı, azure İzleyici SDK'sını (çağrısıconfigure_azure_monitor()
) kullanmadan günlüğe kaydetme telemetrisinin kendisini gönderir. Bu, günlük telemetrisi gönderirken yinelenen telemetri girdileriyle karşılaşmanıza neden olur. Müşterilere önerimiz, Azure İşlevleri çalışanı tarafından sağlanan yerleşik telemetriden çok daha zengin telemetri ve özelliklere izin verdiği için yalnızca SDK'nın kullanılmasıdır. Günlükçünüzün işleyicileri listesini temizleyerek Azure İşlevleri telemetri günlükçüsünün kapatılmasını sağlayabilirsiniz.
...
root_logger = logging.getLogger()
for handler in root_logger.handlers[:]:
root_logger.removeHandler(handler)
...
Yukarıdaki günlükçülerin veya çağrının ayarlanmasından ÖNCE çağrısı configure_azure_monitor()
yaptığınızdan emin olun.
Ayrıca Azure İşlevleri yapılandırması aracılığıyla günlüğe kaydetmeyi devre dışı bırakabilirsiniz.
v2.x+
...
{
"logging": {
...
"logLevel": {
"default": "None",
...
}
}
}
...
v1.x
...
{
"logger": {
"categoryFilter": {
"defaultLevel": "None",
...
}
}
}
...
Sorun giderme
Dışarı aktarma , Azure Core'da tanımlanan özel durumları oluşturur.
Sonraki adımlar
Daha fazla bilgi için belgelere göz atın.
Katkıda bulunma
Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için bkz. https://cla.microsoft.com.
Bir çekme isteği gönderdiğinizde, CLA robotu bir CLA sağlamanız gerekip gerekmediğini otomatik olarak belirler ve çekme isteğini uygun şekilde donatır (örn. etiket, açıklama). Robot tarafından sağlanan yönergeleri izlemeniz yeterlidir. Bu işlemi, CLA’mızı kullanarak tüm depolarda yalnızca bir kere yapmanız gerekir.
Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları SSS bölümüne bakın veya ek sorularınız veya yorumlarınızla iletişime geçin opencode@microsoft.com .
Diğer belgeler
Azure SDK for Python