Azure Container Apps'te OpenTelemetry verilerini toplama ve okuma (önizleme)
Azure Container Apps ortamınızla openTelemetry veri aracısını kullanarak, gözlemlenebilirlik verilerini OpenTelemetry biçiminde göndermeyi seçebilirsiniz:
Bir aracıdan istenen uç noktaya veri borulama. Hedef seçenekler arasında Azure İzleyici Uygulama Analizler, Datadog ve OpenTelemetry Protokolü (OTLP) ile uyumlu uç noktalar bulunur.
Veri yayma şeklini yeniden yapılandırmak zorunda kalmadan ve bir OpenTelemetry aracısını el ile çalıştırmak zorunda kalmadan hedef uç noktaları kolayca değiştirme.
Bu makalede, kapsayıcı uygulamanız için openTelemetry aracısını ayarlama ve yapılandırma işlemi gösterilmektedir.
OpenTelemetry aracısı yapılandırma
OpenTelemetry aracıları kapsayıcı uygulaması ortamınızda yaşıyor. Aracı ayarlarını bir ARM şablonu veya ortama yapılan Bicep çağrıları veya CLI aracılığıyla yapılandırabilirsiniz.
Her uç nokta türünün (Azure İzleyici Uygulaması Analizler, DataDog ve OTLP) belirli yapılandırma gereksinimleri vardır.
Önkoşullar
Yönetilen OpenTelemetry aracısını ortamınıza etkinleştirmek, aracının otomatik olarak veri topladığı anlamına gelmez. Aracılar yalnızca yapılandırma ayarlarınıza göre ve kodunuzu doğru şekilde denetleerek veri gönderir.
Kaynak kodu yapılandırma
OpenTelemetry SDK'sını yükleyerek uygulamanızı veri toplamaya hazırlayın ve ölçümleri, günlükleri veya izlemeleri izlemek için OpenTelemetry yönergelerini izleyin.
Uç noktaları başlatma
Bir koleksiyon hedefine veri gönderebilmek için önce hedef hizmetin bir örneğini oluşturmanız gerekir. Örneğin, Azure İzleyici Uygulama Analizler'ne veri göndermek istiyorsanız, önceden bir Uygulama Analizler örneği oluşturmanız gerekir.
Yönetilen OpenTelemetry aracısı aşağıdaki hedefleri kabul eder:
- Azure Monitor Application Insights
- Datadog
- Herhangi bir OTLP uç noktası (Örneğin: Yeni Relic veya Honeycomb)
Aşağıdaki tabloda her hedefe ne tür veriler gönderebileceğiniz gösterilmektedir:
Hedef | Günlükler | Ölçümler | İzlemeler |
---|---|---|---|
Azure Uygulaması Analizler | Yes | Hayı | Evet |
Datadog | Hayır | Evet | Yes |
OpenTelemetry protokolü (OTLP) yapılandırılmış uç noktası | Yes | Evet | Yes |
Azure Monitor Application Insights
Application Analizler için gereken tek yapılandırma ayrıntısı bağlantı dizesi. bağlantı dizesi aldıktan sonra, kapsayıcı uygulamanızın ARM şablonu aracılığıyla veya Azure CLI komutları ile aracıyı yapılandırabilirsiniz.
Bu şablonu dağıtmadan önce, ile çevrelenen <>
yer tutucuları değerlerinizle değiştirin.
{
...
"properties": {
"appInsightsConfiguration ": {
"connectionString": "<YOUR_APP_INSIGHTS_CONNECTION_STRING>"
}
"openTelemetryConfiguration": {
...
"tracesConfiguration":{
"destinations": ["appInsights"]
},
"logsConfiguration": {
"destinations": ["appInsights"]
}
}
}
}
Datadog
Datadog aracısı yapılandırması, Datadog örneğiniz için site
ve key
için bir değer gerektirir. Datadog örneğinizdeki bu değerleri şu tabloya göre toplayın:
Datadog aracısı özelliği | Container Apps yapılandırma özelliği |
---|---|
DD_SITE |
site |
DD_API_KEY |
key |
Bu yapılandırma ayrıntılarına sahip olduktan sonra, kapsayıcı uygulamanızın ARM şablonu aracılığıyla veya Azure CLI komutları ile aracıyı yapılandırabilirsiniz.
Bu şablonu dağıtmadan önce, ile çevrelenen <>
yer tutucuları değerlerinizle değiştirin.
{
...
"properties": {
...
"openTelemetryConfiguration": {
...
"destinationsConfiguration":{
...
"dataDogConfiguration":{
"site": "<YOUR_DATADOG_SUBDOMAIN>.datadoghq.com",
"key": "<YOUR_DATADOG_KEY>"
}
},
"tracesConfiguration":{
"destinations": ["dataDog"]
},
"metricsConfiguration": {
"destinations": ["dataDog"]
}
}
}
}
OTLP uç noktası
OpenTelemetry protokolü (OTLP) uç noktası, OpenTelemetry verilerini kullanan bir telemetri veri hedefidir. Uygulama yapılandırmanızda birden çok OTLP uç noktası ekleyebilirsiniz. Aşağıdaki örnek iki uç nokta ekler ve aşağıdaki verileri bu uç noktalara gönderir.
Uç nokta adı | Uç noktaya gönderilen veriler |
---|---|
oltp1 |
Ölçümler ve/veya izlemeler |
oltp2 |
Günlükler ve/veya izlemeler |
İstediğiniz kadar OTLP ile yapılandırılmış uç nokta ayarlayabilirsiniz ancak her uç noktanın ayrı bir adı olmalıdır.
{
"properties": {
"appInsightsConfiguration": {},
"openTelemetryConfiguration": {
"destinationsConfiguration":{
"otlpConfigurations": [
{
"name": "otlp1",
"endpoint": "ENDPOINT_URL_1",
"insecure": false,
"headers": "api-key-1=key"
},
{
"name": "otlp2",
"endpoint": "ENDPOINT_URL_2",
"insecure": true
}
]
},
"logsConfiguration": {
"destinations": ["otlp2"]
},
"tracesConfiguration":{
"destinations": ["otlp1", "otlp2"]
},
"metricsConfiguration": {
"destinations": ["otlp1"]
}
}
}
}
Veri Akışı Adı | Açıklama |
---|---|
name |
OTLP tarafından yapılandırılan uç noktanızı tanımlamak için seçtiğiniz ad. |
endpoint |
Toplanan verileri alan hedefin URL'si. |
insecure |
Varsayılan true. İhracatçının gRPC bağlantısı için istemci taşıma güvenliğinin etkinleştirilip etkinleştirilmeymeyeceğini tanımlar. False ise parametresi headers gereklidir. |
headers |
OTLP uç noktalarının güvenliği için gerekli bilgileri sağlayan ve 'key=value' biçiminde boşlukla ayrılmış değerler. Örnek: "api-key=key other-config-value=value" . |
Veri Hedeflerini Yapılandırma
Aracı yapılandırmak için dizisini kullanarak uygulamanızın destinations
hangi aracıların veri gönderdiğini tanımlayın. Geçerli anahtarlar , veya dataDog
özel OTLP uç noktanızın adıdırappInsights
. Bir aracının veri türüne ve uç noktayla ilgili seçeneklere göre nasıl davranacağını denetleyebilirsiniz.
Veri türüne göre
Seçenek | Örnek |
---|---|
Bir veri türü seçin. | Günlükleri, ölçümleri ve/veya izlemeleri tek tek yapılandırabilirsiniz. |
Herhangi bir veri türünü etkinleştirin veya devre dışı bırakın. | Yalnızca izlemeleri göndermeyi ve başka veri göndermemeyi seçebilirsiniz. |
Birden çok uç noktaya bir veri türü gönderin. | Günlükleri hem DataDog'a hem de OTLP tarafından yapılandırılmış bir uç noktaya gönderebilirsiniz. |
Farklı konumlara farklı veri türleri gönderin. | Bir OTLP uç noktasına izlemeler ve DataDog'a ölçümler gönderebilirsiniz. |
Tüm veri türlerinin gönderilmesini devre dışı bırakın. | OpenTelemetry aracısı aracılığıyla veri göndermemeyi seçebilirsiniz. |
Uç noktaya göre
- Her seferinde yalnızca bir Uygulama Analizler ve Datadog uç noktası ayarlayabilirsiniz.
- Birden fazla OTLP tarafından yapılandırılmış uç nokta tanımlayabilirsiniz ancak her birinin ayrı bir adı olmalıdır.
Aşağıdaki örnekte adlı customDashboard
bir OTLP uç noktasının nasıl kullanılacağı gösterilmektedir. Şu komutu gönderir:
- uygulama içgörülerine yönelik izlemeler ve
customDashboard
- günlüklerini uygulama içgörülerine ve
customDashboard
- DataDog ve ölçümleri
customDashboard
{
...
"properties": {
...
"openTelemetryConfiguration": {
...
"tracesConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"logsConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"metricsConfiguration": {
"destinations": [
"dataDog",
"customDashboard"
]
}
}
}
}
## Example OpenTelemetry configuration
The following example ARM template shows how you might configure your container app to collect telemetry data using Azure Monitor Application Insights, Datadog, and with a custom OTLP agent named `customDashboard`.
Before you deploy this template, replace placeholders surrounded by `<>` with your values.
```json
{
"location": "eastus",
"properties": {
"appInsightsConfiguration": {
"connectionString": "<APP_INSIGHTS_CONNECTION_STRING>"
},
"openTelemetryConfiguration": {
"destinationsConfiguration": {
"dataDogConfiguration": {
"site": "datadoghq.com",
"key": "<YOUR_DATADOG_KEY>"
},
"otlpConfigurations": [
{
"name": "customDashboard",
"endpoint": "<OTLP_ENDPOINT_URL>",
"insecure": true
}
]
},
"tracesConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"logsConfiguration": {
"destinations": [
"appInsights",
"customDashboard"
]
},
"metricsConfiguration": {
"destinations": [
"dataDog",
"customDashboard"
]
}
}
}
}
Ortam değişkenleri
OpenTelemetry aracısı, çalışma zamanında uygulamanıza otomatik olarak bir dizi ortam değişkeni ekler.
İlk iki ortam değişkeni standart OpenTelemetry verme yapılandırmasına uyar ve OTLP standart yazılım geliştirme setlerinde kullanılır. Kapsayıcı uygulaması belirtiminde ortam değişkenini açıkça ayarlarsanız, değeriniz otomatik olarak eklenen değerin üzerine yazar.
OTLP verme yapılandırması hakkında bilgi edinin bkz . OTLP İhracatçı Yapılandırması.
Veri Akışı Adı | Açıklama |
---|---|
OTEL_EXPORTER_OTLP_ENDPOINT |
İsteğe bağlı olarak belirtilen bağlantı noktası numarasıyla herhangi bir sinyal türü için temel uç nokta URL'si. Bu ayar, aynı uç noktaya birden fazla sinyal gönderdiğinizde ve bir ortam değişkeninin uç noktayı denetlemesini istediğinizde yararlıdır. Örnek: http://otel.service.k8se-apps:4317/ |
OTEL_EXPORTER_OTLP_PROTOCOL |
Tüm telemetri verileri için kullanılan OTLP aktarım protokolünü belirtir. Yönetilen aracı yalnızca destekler grpc . Değer: grpc . |
Diğer üç ortam değişkeni Azure Container Apps'e özgüdür ve her zaman eklenir. Bu değişkenler her belirli veri türü (günlükler, ölçümler, izlemeler) için aracının uç nokta URL'lerini tutar.
Bu değişkenler yalnızca hem yönetilen OpenTelemetry aracısını hem de başka bir OpenTelemetry aracısını kullanıyorsanız gereklidir. Bu değişkenlerin kullanılması, verileri farklı OpenTelemetry aracıları arasında yönlendirmeyi denetlemenizi sağlar.
Veri Akışı Adı | Açıklama | Örnek |
---|---|---|
CONTAINERAPP_OTEL_TRACING_GRPC_ENDPOINT |
Yalnızca izleme verileri için uç nokta URL'si. | http://otel.service.k8se-apps:43178/v1/traces/ |
CONTAINERAPP_OTEL_LOGGING_GRPC_ENDPOINT |
Yalnızca günlük verileri için uç nokta URL'si. | http://otel.service.k8se-apps:43178/v1/logs/ |
CONTAINERAPP_OTEL_METRIC_GRPC_ENDPOINT |
Yalnızca ölçüm verileri için uç nokta URL'si. | http://otel.service.k8se-apps:43178/v1/metrics/ |
OpenTelemetry aracısı maliyetleri
Aracının temel alınan işlem için faturalandırılırsınız.
Faturalama yapısı ve koşulları için hedef hizmete bakın. Örneğin, hem Azure İzleyici Uygulaması Analizler hem de Datadog'a veri gönderirseniz, her iki hizmet tarafından uygulanan ücretlerden siz sorumlu olursunuz.
Bilinen sınırlamalar
- OpenTelemetry aracıları önizleme aşamasındadır.
- Sistem günlükleri veya Container Apps standart ölçümleri gibi sistem verileri OpenTelemetry aracısına gönderilmek üzere kullanılamaz.
- Uygulama Analizler uç noktası ölçümleri kabul etmez.
- Datadog uç noktası günlükleri kabul etmez.
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin