Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Bu bağlayıcı, Microsoft Fabric'teki Gerçek Zamanlı Zeka'da kullanılabilir. Aşağıdaki özel durumlar için bu makaledeki yönergeleri kullanın:
- Gerekirse, KQL veritabanı oluşturma başlığındaki yönergeleri kullanarak veritabanları oluşturun.
- Gerekirse, Boş tablo oluşturma başlığındaki yönergeleri kullanarak tablolar oluşturun.
- Kopyalama URI'sindeki yönergeleri kullanarak sorgu veya alma URI'lerini alın.
- KQL sorgu kümesinde sorgu çalıştırma.
OpenTelemetry (OTel), uygulama gözlemlenebilirliği için açık bir çerçevedir. Enstrümantasyon, Cloud Native Computing Foundation (CNCF) tarafından barındırılır. Ölçümler, günlükler ve izler dahil olmak üzere gözlemlenebilirlik verileri için standart arabirimler sağlar. OTel Toplayıcısı üç bileşen içerir: Toplayıcıya veri alan alıcılar; alınan verilerle ne yapacağını belirleyen işlemciler; ve alınan verileri bir hedefe gönderen ihracatçılar.
Azure Veri Gezgini vereni, birçok alıcıdan Azure Veri Gezgini'a veri alımını destekler.
Not
- Yapılandırma ayarları benioku belgelerinde özetlenir.
- dışarı aktarma kaynak kodu için bkz. Azure Veri Gezgini dışarı aktarma.
Bu makalede şunları öğreneceksiniz:
- Ortamınızı ayarlayın.
- Azure Data Explorer dışa aktarıcıyı yapılandırın.
- Örnek uygulamayı çalıştırın.
- Gelen verileri sorgula.
Önkoşullar
- Azure aboneliği. Ücretsiz bir Azure hesabı oluşturun.
- Küme ve veritabanı. Azure Veri Gezgini kümesi ve veritabanı oluşturmayı öğrenin.
Ortamınızı ayarlama
Bu bölümde ortamınızı OTel ihracatçısını kullanacak şekilde hazırlarsınız.
Microsoft Entra uygulama kaydı oluşturma
Microsoft Entra uygulama kimlik doğrulaması, uygulamaların kullanıcı olmadan Azure Veri Gezgini'ne erişmesini sağlar. OTel dışarı aktarıcısını kullanarak veri almak için, bir Microsoft Entra hizmet sorumlusu oluşturup kaydedin ve bu sorumluyu bir Azure Veri Gezgini veritabanına veri alma yetkisi ver.
- Azure Veri Gezgini kümenizde, Azure Veri Gezgini'nde Microsoft Entra uygulama kaydı oluşturma bölümünde 1-7. adımları izleyin.
- Sonraki adımlar için aşağıdaki değerleri kaydedin:
Microsoft Entra uygulaması izinlerini verme
Web kullanıcı arabiriminin sorgu sekmesinde kümenize bağlanın. Nasıl bağlanacağınızı öğrenmek için bkz. Küme ekleme.
Verileri almak istediğiniz veritabanına göz atın.
Yer tutucuları değiştirerek aşağıdaki yönetim komutunu çalıştırın. DatabaseName değerini hedef veritabanı adıyla, ApplicationID değerini ise kaydedilen değerle değiştirin.
.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'Azure Data Explorer App Registration'Not
Son parametre, bir veritabanıyla ilişkili rolleri sorguladığınızda not olarak gösterilen bir dizedir. Daha fazla bilgi için bkz . Mevcut güvenlik rollerini görüntüleme.
Hedef tablo oluşturma
Soldaki menüden Sorgu'yu seçin.
Sol bölmede hedef kümeyi genişletin.
Sorgularınıza doğru bağlam sağlamak için hedef veritabanını seçin.
Gelen veriler için tablolar ve şema eşlemesi oluşturmak için aşağıdaki komutları çalıştırın:
.create-merge table <Logs-Table-Name> (Timestamp:datetime, ObservedTimestamp:datetime, TraceID:string, SpanID:string, SeverityText:string, SeverityNumber:int, Body:string, ResourceAttributes:dynamic, LogsAttributes:dynamic) .create-merge table <Metrics-Table-Name> (Timestamp:datetime, MetricName:string, MetricType:string, MetricUnit:string, MetricDescription:string, MetricValue:real, Host:string, ResourceAttributes:dynamic,MetricAttributes:dynamic) .create-merge table <Traces-Table-Name> (TraceID:string, SpanID:string, ParentID:string, SpanName:string, SpanStatus:string, SpanKind:string, StartTime:datetime, EndTime:datetime, ResourceAttributes:dynamic, TraceAttributes:dynamic, Events:dynamic, Links:dynamic)
Akış alımını ayarlama
Azure Veri Gezgini iki ana veri alımı türüne sahiptir: toplu işlem ve akış. Daha fazla bilgi için bkz . toplu işlem ve akış alımı. Akış yöntemi, Azure Veri Gezgini dışarı aktarma yapılandırmasında yönetilir. Gerçek zamanlıya yakın günlüklere ve izlemelere ihtiyacınız varsa akış alımı iyi bir seçim olabilir. Ancak, akış alımı toplu alımdan daha fazla kaynak kullanır. OTel çerçevesi verileri gruplar ve bir alma yöntemi seçerken bunu göz önünde bulundurmanız gerekir.
Not
Bu seçeneğin kullanılabilmesi için Azure Veri Gezgini kümesinde akış alımı etkinleştirilmelidirmanaged.
.show veritabanı akış alma ilkesi çalıştırılarak akışın etkinleştirilip etkinleştirilmediğini denetleyin.
Akış alımını etkinleştirmek için üç tablonun her biri için aşağıdaki komutu çalıştırın:
.alter table <Table-Name> policy streamingingestion enable
Azure Veri Gezgini vereni yapılandırma
OpenTelemetry verilerinizi Azure Veri Gezgini'a almak için Aşağıdaki Azure Veri Gezgini dışarı aktarma yapılandırmasıyla OpenTelemetry dağıtımını dağıtmanız ve çalıştırmanız gerekir.
Aşağıdaki alanları kullanarak Azure Veri Gezgini vereni yapılandırın:
Alan Açıklama Önerilen ayar İhracatçılar İhracatçı türü Azure Veri Gezgini cluster_uri Veritabanını ve tabloları barındıran Azure Veri Gezgini kümesinin URI'si <cluster.kusto.windows.net> https:// application_id Müşteri Kimliği <uygulama kimliği> application_key İstemci gizli anahtarı <uygulama anahtarı> tenant_id Kiracı <uygulama kiracısı> db_name Günlükleri alan veritabanı oteldb veya oluşturduğunuz başka bir veritabanı. metrics_table_name Veritabanındaki hedef tablo, dışarı aktarılan ölçüm verilerini depolayan db_name. OTELMetrics logs_table_name Veritabanındaki hedef tablo, dışarı aktarılan günlük verilerini depolayan db_name. OTELLogs traces_table_name Veritabanındaki hedef tablo, dışarı aktarılan izleme verilerini depolayan db_name. OTELTraces ingestion_type Alım türü: yönetilen (akış) veya toplu işlem managed metrics_table_json_mapping İsteğe bağlı parametre. Varsayılan tablo eşlemesi, tablo oluşturma sırasında OTeL ölçümleri özniteliklerine göre tanımlanır. Varsayılan eşleme bu parametre kullanılarak değiştirilebilir. <json metrics_table_name eşlemesi> logs_table_json_mapping İsteğe bağlı parametre. Varsayılan tablo eşlemesi, OTeL günlük öznitelikleri temelinde tablo oluşturma sırasında tanımlanır. Varsayılan eşleme bu parametre kullanılarak değiştirilebilir. <json logs_table_name eşlemesi> traces_table_json_mapping İsteğe bağlı parametre. Varsayılan tablo eşlemesi, tablo oluşturma sırasında OTeL izleme özniteliklerine göre tanımlanır. Varsayılan eşleme bu parametre kullanılarak değiştirilebilir. <json traces_table_name eşlemesi> izlemeler Hizmetler: Etkinleştirmek için bileşenleri izler alıcılar: [otlp]
işlemciler: [batch]
exporters: [azuredataexplorer]metrics Hizmetler: Etkinleştirecek ölçüm bileşenleri alıcılar: [otlp]
işlemciler: [batch]
exporters: [azuredataexplorer]günlükler Hizmetler: Etkinleştirecek bileşenleri günlüğe kaydeder alıcılar: [otlp]
işlemciler: [batch]
exporters: [ azuredataexplorer]Azure Veri Gezgini dışarı aktarmayı çalıştırmak için "--config" bayrağını kullanın.
Bu, Azure Veri Gezgini vereni için örnek bir yapılandırmadır:
---
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
processors:
batch:
exporters:
azuredataexplorer:
cluster_uri: "https://<cluster>.kusto.windows.net"
application_id: "<application id>"
application_key: "<application key>"
tenant_id: "<application tenant>"
db_name: "oteldb"
metrics_table_name: "OTELMetrics"
logs_table_name: "OTELLogs"
traces_table_name: "OTELTraces"
ingestion_type : "managed"
metrics_table_json_mapping : "<json metrics_table_name mapping>"
logs_table_json_mapping : "<json logs_table_name mapping>"
traces_table_json_mapping : "<json traces_table_name mapping>"
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [azuredataexplorer]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [azuredataexplorer]
logs:
receivers: [otlp]
processors: [batch]
exporters: [azuredataexplorer]
Örnek uygulamayla veri toplama
Toplayıcı yapılandırıldığına göre, alınması için veri göndermeniz gerekir. Bu örnekte. Java OTeL toplayıcı aracısı ile örnek spring pet clinic uygulamasını kullanırsınız.
Toplayıcı aracısını buradan indirin: Telemetri toplayıcı aracısını açın.
Örnek uygulama için açık telemetriyi etkinleştirmek için aşağıdaki ortam değişkenlerini ayarlayın. Open-telemetry-collector-host, Azure Veri Gezgini verenin yapılandırıldığı ve çalıştığı konağa başvurur.
$env:OTEL_SERVICE_NAME="pet-clinic-service" $env:OTEL_TRACES_EXPORTER="otlp" $env:OTEL_LOGS_EXPORTER="otlp " $env:OTEL_EXPORTER_OTLP_ENDPOINT="http://<open-telemetry-collector-host>:4317"Aşağıdaki komut satırı bağımsız değişkenleriyle örnek spring-boot uygulamasını çalıştırın:
java -javaagent:./opentelemetry-javaagent.jar -jar spring-petclinic-<version>-SNAPSHOT.jar
Gelen verileri sorgulama
Örnek uygulama çalıştırıldıktan sonra verileriniz Azure Veri Gezgini'da tanımlanan tablolara alınır. Bu tablolar, OTel toplayıcı yapılandırmasında oteldb olarak tanımlanan bir veritabanında oluşturulur. Oluşturduğunuz tablolar OTel toplayıcı yapılandırmasında tanımlanır. Bu örnekte üç tablo oluşturdunuz: OTELMetrics, OTELLogs ve OTELTraces. Bu bölümde, kullanılabilir verilerin küçük bir seçimini almak için her tabloyu ayrı ayrı sorgulaacaksınız.
Soldaki menüden Sorgu'yu seçin.
Sol bölmede hedef kümeyi genişletin.
Sorgularınıza doğru bağlamı vermek için oteldb veritabanını seçin.
Her tablodan rastgele sayıda satır görmek için aşağıdaki sorguları sırayla kopyalayın/yapıştırın:
Ölçümler
OTELMetrics |take 2Aşağıdaki tabloyla aynı değil, benzer sonuçlar almanız gerekir:
Zaman damgası MetricName MetricType MetricUnit MetricDescription MetricValue Ana Bilgisayar MetricAttributes ResourceAttributes 2022-07-01T12:55:33Z http.server.active_requests Sum istekler Şu anda geçerli olan eşzamanlı HTTP isteklerinin sayısı 0 MASAÜSTÜ SFS7RUQ {"http.flavor":"1.1", "http.host":"localhost:8080", "scope.name":"io.opentelemetry.tomcat-7.0", "scope.version":"1.14.0-alpha", "http.method":"GET", "http.scheme":"http"} {"host.name":"DESKTOP-SFS7RUQ", "process.command_line":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe -javaagent:./opentelemetry-javaagent.jar", "process.runtime.description":"Oracle Corporation Java HotSpot(TM) 64 Bit Server VM 18.0.1.1+2-6", "process.runtime.version":"18.0.1.1+2-6", "telemetry.sdk.language":"java", "host.arch":"amd64", "process.runtime.name":"Java(TM) SE Runtime Environment", "telemetry.auto.version":"1.14.0", "telemetry.sdk.name":"opentelemetry", "os.type":"windows", "os.description":"Windows 11 10.0", "process.executable.path":"C:\Program Dosyalar\Java\jdk-18.0.1.1; bölme; java.exe", "process.pid":5980, "service.name":"my-service", "telemetry.sdk.version":"1.14.0"} 2022-07-01T12:55:33Z http.server.duration_sum Histogram ms Gelen HTTP isteğinin süresi (Toplam örnek sayısı) 114.9881 MASAÜSTÜ SFS7RUQ {"http.flavor":"1.1", "http.host":"localhost:8080", "scope.name":"io.opentelemetry.tomcat-7.0", "scope.version":"1.14.0-alpha", "http.method":"GET", "http.scheme":"http", "http.route":"/owners/find", "http.status_code":200} {"host.name":"DESKTOP-SFS7RUQ", "process.command_line":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe -javaagent:./opentelemetry-javaagent.jar", "process.runtime.description":"Oracle Corporation Java HotSpot(TM) 64 Bit Server VM 18.0.1.1+2-6", "process.runtime.version":"18.0.1.1+2-6", "telemetry.sdk.language":"java", "host.arch":"amd64", "process.runtime.name":"Java(TM) SE Runtime Environment", "telemetry.auto.version":"1.14.0", "telemetry.sdk.name":"opentelemetry", "os.type":"windows", "os.description":"Windows 11 10.0", "process.executable.path":"C:\Program Dosyalar\Java\jdk-18.0.1.1; bölme; java.exe", "process.pid":5980, "service.name":"my-service", "telemetry.sdk.version":"1.14.0"} Günlükler
OTELLogs |take 2Aşağıdaki tabloyla aynı değil, benzer sonuçlar almanız gerekir:
Zaman damgası TraceId SpanId SeverityText Önem DerecesiNumarası Gövde ResourceAttributes LogsAttributes 2022-07-01T13:00:39Z INFO 9 PID 37280 ile DESKTOP-SFS7RUQ üzerinde Java 18.0.1.1 kullanarak PetClinicApplication v2.7.0-SNAPSHOT'ı başlatma (C:\Users\adxuser\Documents\Repos\spring-petclinic\target\spring-petclinic-2.7.0-SNAPSHOT.jar C:\Users\adxuser\Documents\Repos\spring-petclinic) içinde adxuser tarafından başlatıldı {"host.name":"DESKTOP-SFS7RUQ", "process.executable.path":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe", "process.pid":37280, "process.runtime.description":"Oracle Corporation Java HotSpot(TM) 64 Bit Server VM 18.0.1.1+2-6", "process.runtime.name":"Java(TM) SE Runtime Environment", "telemetry.sdk.name":"opentelemetry", "os.type":"windows", "process.runtime.version":"18.0.1.1+2-6", "telemetry.sdk.language":"java", "telemetry.sdk.version":"1.14.0", "process.command_line":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe -javaagent:./opentelemetry-javaagent.jar", "os.description":"Windows 11 10.0", "service.name":"my-service", "telemetry.auto.version":"1.14.0", "host.arch":"amd64"} {"scope.name":"org.springframework.samples.petclinic.PetClinicApplication"} 2022-07-01T13:00:39Z INFO 9 Etkin profil kümesi yok, 1 varsayılan profile geri dönüyor: "varsayılan" {"host.name":"DESKTOP-SFS7RUQ", "process.executable.path":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe", "process.pid":37280, "process.runtime.description":"Oracle Corporation Java HotSpot(TM) 64 Bit Server VM 18.0.1.1+2-6", "process.runtime.name":"Java(TM) SE Runtime Environment", "telemetry.sdk.name":"opentelemetry", "os.type":"windows", "process.runtime.version":"18.0.1.1+2-6", "telemetry.sdk.language":"java", "telemetry.sdk.version":"1.14.0", "process.command_line":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe -javaagent:./opentelemetry-javaagent.jar", "os.description":"Windows 11 10.0", "service.name":"my-service", "telemetry.auto.version":"1.14.0", "host.arch":"amd64"} {"scope.name":"org.springframework.samples.petclinic.PetClinicApplication"} İzlemeler
OTELTraces |take 2Aşağıdaki tabloyla aynı değil, benzer sonuçlar almanız gerekir:
TraceId SpanId ParentId SpanName SpanStatus SpanKind StartTime EndTime ResourceAttributes TraceAttributes Ekinlikler Bağlantılar 573c0e4e002a9f7281f6d63eafe4ef87 dab70d0ba8902c5e 87d003d6-02c1-4f3d-8972-683243c35642 STATUS_CODE_UNSET SPAN_KIND_CLIENT 2022-07-01T13:17:59Z 2022-07-01T13:17:59Z {"telemetry.auto.version":"1.14.0", "os.description":"Windows 11 10.0", "process.executable.path":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe", "process.runtime.description":"Oracle Corporation Java HotSpot(TM) 64 Bit Server VM 18.0.1.1+2-6", "service.name":"my-service", "process.runtime.name":"Java(TM) SE Runtime Environment", "telemetry.sdk.language":"java", "telemetry.sdk.name":"opentelemetry", "host.arch":"amd64", "host.name":"DESKTOP-SFS7RUQ", "process.pid":34316, "process.runtime.version":"18.0.1.1+2-6", "os.type":"windows", "process.command_line":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe -javaagent:./opentelemetry-javaagent.jar", "telemetry.sdk.version":"1.14.0"} {"db.user":"sa", "thread.id":1, "db.name":"87d003d6-02c1-4f3d-8972-683243c35642", "thread.name":"main", "db.system":"h2", "scope.name":"io.opentelemetry.jdbc", "scope.version":"1.14.0-alpha", "db.connection_string":"h2:mem:", "db.statement":"DROP TABLE vet_specialties IF EXISTS"} [] [] 84a9a8c4009d91476da02dfa40746c13 3cd4c0e91717969a 87d003d6-02c1-4f3d-8972-683243c35642 STATUS_CODE_UNSET SPAN_KIND_CLIENT 2022-07-01T13:17:59Z 2022-07-01T13:17:59Z {"telemetry.auto.version":"1.14.0", "os.description":"Windows 11 10.0", "process.executable.path":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe", "process.runtime.description":"Oracle Corporation Java HotSpot(TM) 64 Bit Server VM 18.0.1.1+2-6", "service.name":"my-service", "process.runtime.name":"Java(TM) SE Runtime Environment", "telemetry.sdk.language":"java", "telemetry.sdk.name":"opentelemetry", "host.arch":"amd64", "host.name":"DESKTOP-SFS7RUQ", "process.pid":34316, "process.runtime.version":"18.0.1.1+2-6", "os.type":"windows", "process.command_line":"C:\Program Files\Java\jdk-18.0.1.1; bölme; java.exe -javaagent:./opentelemetry-javaagent.jar", "telemetry.sdk.version":"1.14.0"} {"db.user":"sa", "thread.id":1, "db.name":"87d003d6-02c1-4f3d-8972-683243c35642", "thread.name":"main", "db.system":"h2", "scope.name":"io.opentelemetry.jdbc", "scope.version":"1.14.0-alpha", "db.connection_string":"h2:mem:", "db.statement":"DROP TABLE vets IF EXISTS"} [] []
Daha fazla veri işleme
Uygulama gereksinimine göre toplanan verileri daha fazla işlemek için güncelleştirme ilkelerini kullanın. Daha fazla bilgi için bkz . Güncelleştirme ilkesine genel bakış.
Aşağıdaki örnek, histogram ölçümlerini demetler ve toplamalar içeren histo'ya özgü bir tabloya aktarır. Azure Veri Gezgini web kullanıcı arabiriminin sorgu bölmesinde aşağıdaki komutu çalıştırın:
.create table HistoBucketData (Timestamp: datetime, MetricName: string , MetricType: string , Value: double, LE: double, Host: string , ResourceAttributes: dynamic, MetricAttributes: dynamic ) .create function with ( docstring = "Histo bucket processing function", folder = "UpdatePolicyFunctions") ExtractHistoColumns() { OTELMetrics | where MetricType == 'Histogram' and MetricName has "_bucket" | extend f=parse_json(MetricAttributes) | extend le=todouble(f.le) | extend M_name=replace_string(MetricName, '_bucket','') | project Timestamp, MetricName=M_name, MetricType, MetricValue, LE=le, Host, ResourceAttributes, MetricAttributes } .alter table HistoBucketData policy update @'[{ "IsEnabled": true, "Source": "OTELMetrics","Query": "ExtractHistoColumns()", "IsTransactional": false, "PropagateIngestionProperties": false}]'Aşağıdaki komutlar, histogram ölçüm türünün yalnızca sayı ve toplam değerlerini içeren ve bir güncelleştirme ilkesi ekleyen bir tablo oluşturur. Azure Veri Gezgini web kullanıcı arabiriminin sorgu bölmesinde aşağıdaki komutu çalıştırın:
.create table HistoData (Timestamp: datetime, MetricName: string , MetricType: string , Count: double, Sum: double, Host: string , ResourceAttributes: dynamic, MetricAttributes: dynamic) .create function with ( docstring = "Histo sum count processing function", folder = "UpdatePolicyFunctions") ExtractHistoCountColumns() { OTELMetrics | where MetricType =='Histogram' | where MetricName has "_count" | extend Count=MetricValue | extend M_name=replace_string(MetricName, '_bucket','') | join kind=inner (OTELMetrics | where MetricType =='Histogram' | where MetricName has "_sum" | project Sum = MetricValue , Timestamp) on Timestamp | project Timestamp, MetricName=M_name, MetricType, Count, Sum, Host, ResourceAttributes, MetricAttributes } .alter table HistoData policy update @'[{ "IsEnabled": true, "Source": "RawMetricsData","Query": "ExtractHistoCountColumns()", "IsTransactional": false, "PropagateInge