Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Belangrijk
Deze connector kan worden gebruikt in Real-Time Intelligence in Microsoft Fabric. Gebruik de instructies in dit artikel met de volgende uitzonderingen:
- Indien nodig maakt u databases met behulp van de instructies in Een KQL-database maken.
- Maak zo nodig tabellen met behulp van de instructies in Een lege tabel maken.
- Haal query- of ingestie-URI's op met behulp van de instructies in URI kopiëren.
- Voer query's uit in een KQL-queryset.
OpenTelemetry (OTel) is een open framework voor waarneembaarheid van toepassingen. De instrumentatie wordt gehost door de Cloud Native Computing Foundation (CNCF). Het biedt standaardinterfaces voor waarneembaarheidsgegevens, waaronder metrische gegevens, logboeken en traceringen. De OTel Collector bevat drie onderdelen: ontvangers, die gegevens in de Collector ophalen; processors, die bepalen wat te doen met de ontvangen gegevens; en exporteurs, die de ontvangen gegevens naar een bestemming verzenden.
De Azure Data Explorer-exporteur ondersteunt het opnemen van gegevens van veel ontvangers in Azure Data Explorer.
Opmerking
- Configuratie-instellingen worden samengevat in de lees-mij-documentatie.
- Zie de Azure Data Explorer-exporteur voor de broncode van de exporteur.
In dit artikel leert u het volgende:
- Stel uw omgeving in.
- Configureer de Azure Data Explorer-exporteur.
- Voer de voorbeeldtoepassing uit.
- Query's uitvoeren op binnenkomende gegevens.
Vereiste voorwaarden
- Een Azure-abonnement. Maak een gratis Azure-account.
- Een cluster en een database. Meer informatie over het maken van een Azure Data Explorer-cluster en -database.
Uw omgeving instellen
In deze sectie bereidt u uw omgeving voor op het gebruik van de OTel-exporteur.
Een Microsoft Entra-app-registratie maken
Met Microsoft Entra-toepassingsverificatie kunnen toepassingen toegang krijgen tot Azure Data Explorer zonder dat een gebruiker aanwezig is. Als u gegevens wilt opnemen met behulp van de OTel-exporteur, maakt en registreert u een Microsoft Entra-service-principal en autoriseert u deze principal om gegevens op te nemen in een Azure Data Explorer-database.
- Volg in uw Azure Data Explorer-cluster de stappen 1-7 in Een Microsoft Entra-toepassingsregistratie maken in Azure Data Explorer.
- Sla de volgende waarden op voor latere stappen:
De Microsoft Entra-app-machtigingen verlenen
Maak op het querytabblad van de webgebruikersinterface verbinding met uw cluster. Zie Clusters toevoegen voor meer informatie over het maken van verbinding.
Blader naar de database waarin u gegevens wilt opnemen.
Voer de volgende beheeropdracht uit, waarbij u de tijdelijke aanduidingen vervangt. Vervang DatabaseName door de naam van de doeldatabase en ApplicationID door de opgeslagen waarde.
.add database <DatabaseName> ingestors ('aadapp=<ApplicationID>') 'Azure Data Explorer App Registration'Opmerking
De laatste parameter is een tekenreeks die wordt weergegeven als notities wanneer u een query uitvoert op de rollen die zijn gekoppeld aan een database. Zie Bestaande beveiligingsrollen weergeven voor meer informatie.
Doeltabellen maken
Blader naar de webgebruikersinterface van Azure Data Explorer.
Selecteer Query in het linkermenu.
Vouw het doelcluster uit in het linkerdeelvenster.
Selecteer de doeldatabase om uw query's de juiste context te geven.
Voer de volgende opdrachten uit om tabellen en schematoewijzing te maken voor de binnenkomende gegevens:
.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)
Streaming data-inname instellen
Azure Data Explorer heeft twee hoofdtypen opname: batchverwerking en streaming. Zie batchverwerking versus streamingopname voor meer informatie. De streamingmethode wordt beheerd in de configuratie van de Azure Data Explorer-exporteur. Streamingopname kan een goede keuze zijn als u logboeken en traceringen in bijna realtime nodig hebt. Streamingopname maakt echter gebruik van meer resources dan batchgewijze opname. Het OTel-framework batches gegevens, waarmee u rekening moet houden bij het kiezen van een invoermethode.
Opmerking
Streaming-ingestie moet zijn ingeschakeld op het Azure Data Explorer-cluster om de managed optie te kunnen gebruiken.
Controleer of streaming is ingeschakeld door de opdracht .show database streaming ingestion policy uit te voeren.
Voer de volgende opdracht uit voor elk van de drie tabellen om streamingopname in te schakelen:
.alter table <Table-Name> policy streamingingestion enable
De Azure Data Explorer-exporteur configureren
Als u uw OpenTelemetry-gegevens wilt opnemen in Azure Data Explorer, moet u de OpenTelemetry-distributie implementeren en uitvoeren met de volgende configuratie van de Azure Data Explorer-exporteur.
Configureer de Azure Data Explorer-exporteur met behulp van de volgende velden:
Veld Description Voorgestelde instelling Exporteurs Type exporteur Azure-gegevensverkenner cluster_uri URI van het Azure Data Explorer-cluster met de database en tabellen <https://cluster.kusto.windows.net> applicatie-ID Klant-ID <toepassings-id> applicatiesleutel Clientgeheim <toepassingssleutel> huurder_id Tenant <applicatietenant> db_name Database die de logboeken ontvangt oteldb of een andere database die u hebt gemaakt. metrics_table_name De doeltabel in de database db_name waarin geëxporteerde metrische gegevens worden opgeslagen. OTELMetrics logs_table_name De doeltabel in de database db_name waarin geëxporteerde logboekgegevens worden opgeslagen. OTELLogs traces_tabel_naam De doeltabel in de database db_name waarin geëxporteerde tracegegevens worden opgeslagen. OTELTraces gegevensinname_type Type van opname: beheerd (gestreamd) of gebundeld managed metrics_table_json_mapping Optionele parameter. De standaardtabeltoewijzing wordt bepaald tijdens het aanmaken van een tabel op basis van metrische OTeL-kenmerken. De standaardtoewijzing kan worden gewijzigd met behulp van deze parameter. <json metrics_table_name mapping> logs_table_json_mapping (logboekentabel JSON-koppeling) Optionele parameter. Standaardtabeltoewijzing wordt gedefinieerd tijdens het maken van tabellen op basis van OTeL-logboekkenmerken. De standaardtoewijzing kan worden gewijzigd met behulp van deze parameter. <json logs_table_name koppeling> traces_table_json_mapping Optionele parameter. Standaardtabeltoewijzing wordt gedefinieerd tijdens het maken van tabellen op basis van OTeL-traceringskenmerken. De standaardtoewijzing kan worden gewijzigd met behulp van deze parameter. <json traces_table_name mapping> traces Services: traceert onderdelen die moeten worden ingeschakeld ontvangers: [otlp]
processors: [batch]
exporteurs: [azuredataexplorer]metrics Services: componenten voor het inschakelen van metrieken ontvangers: [otlp]
processors: [batch]
exporteurs: [azuredataexplorer]logs Services: registreert onderdelen die moeten worden ingeschakeld ontvangers: [otlp]
processors: [batch]
exporteurs: [ azuredataexplorer]Als u de Azure Data Explorer-exporteur wilt uitvoeren, gebruikt u de vlag --config.
Dit is een voorbeeldconfiguratie voor de Azure Data Explorer-exporteur:
---
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]
Gegevens verzamelen met een voorbeeldtoepassing
Nu de collector is geconfigureerd, moet u gegevens verzenden die moeten worden opgenomen. In dit voorbeeld. U gebruikt de voorbeeldtoepassing spring pet clinic met de java OTeL collector agent.
Download hier de collectoragent: Open de agent voor telemetrieverzamelaars.
Als u open telemetrie voor de voorbeeldtoepassing wilt inschakelen, stelt u de volgende omgevingsvariabelen in. De open-telemetry-collector-host verwijst naar de host waar de Azure Data Explorer-exporteur is geconfigureerd en wordt uitgevoerd.
$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"Voer de voorbeeldtoepassing spring-boot uit met de volgende opdrachtregelargumenten:
java -javaagent:./opentelemetry-javaagent.jar -jar spring-petclinic-<version>-SNAPSHOT.jar
Binnenkomende gegevens opvragen
Zodra de voorbeeld-app is uitgevoerd, zijn uw gegevens opgenomen in de gedefinieerde tabellen in Azure Data Explorer. Deze tabellen worden gemaakt in een database die is gedefinieerd in de configuratie van de OTel-collector, als oteldb. De tabellen die u hebt gemaakt, worden gedefinieerd in de configuratie van de OTel-collector. In dit voorbeeld hebt u drie tabellen gemaakt: OTELMetrics, OTELLogs en OTELTraces. In deze sectie voert u een query uit op elke tabel om een kleine selectie van de beschikbare gegevens op te halen.
Blader naar de webgebruikersinterface van Azure Data Explorer.
Selecteer Query in het linkermenu.
Vouw het doelcluster uit in het linkerdeelvenster.
Selecteer de oteldb-database om uw query's de juiste context te geven.
Kopieer/plak de volgende query's opeenvolgend om een willekeurig aantal rijen uit elke tabel te zien:
Metrics
OTELMetrics |take 2U krijgt resultaten die vergelijkbaar zijn, maar niet precies hetzelfde, als in de volgende tabel:
Tijdstempel MetricName Type van Meting MetricUnit Beschrijving van metriek MetrischeWaarde Host Metrische Attribuuten ResourceAttributes 2022-07-01T12:55:33Z http.server.active_requests Som Verzoeken Het aantal gelijktijdige HTTP-aanvragen dat momenteel in-flight is 0 DESKTOP-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;bin;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 Files\Java\jdk-18.0.1.1;bin;java.exe", "process.pid":5980, "service.name":"my-service", "telemetry.sdk.version":"1.14.0"} 2022-07-01T12:55:33Z HTTP-server duur-som Histogram mevrouw De duur van de inkomende HTTP-aanvraag (som van de voorbeelden) 114.9881 DESKTOP-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;bin;java.exe -javaagent:./opentelemetry-javaagent.jar", "process.runtime.description":"Oracle Corporation Java HotSpot(TM) 64-bits 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 Files\Java\jdk-18.0.1.1;bin;java.exe", "process.pid":5980, "service.name":"my-service", "telemetry.sdk.version":"1.14.0"} Logs
OTELLogs |take 2U krijgt resultaten die vergelijkbaar zijn, maar niet precies hetzelfde, als in de volgende tabel:
Tijdstempel TraceId SpanId Ernstigheidsniveau Ernstigheidsnummer Body ResourceAttributes LogsAttributes 2022-07-01T13:00:39Z INFORMATIE 9 PetClinicApplication v2.7.0-SNAPSHOT starten met java 18.0.1.1 op DESKTOP-SFS7RUQ met PID 37280 (C:\Users\adxuser\Documents\Repos\spring-petclinic\target\spring-petclinic-2.7.0-SNAPSHOT.jar gestart door adxuser in C:\Users\adxuser\Documents\Repos\spring-petclinic) {"host.name":"DESKTOP-SFS7RUQ", "process.executable.path":"C:\Program Files\Java\jdk-18.0.1.1;bin;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;bin;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 INFORMATIE 9 Geen actieve profielset, terugvallen op 1 standaardprofiel: 'standaard' {"host.name":"DESKTOP-SFS7RUQ", "process.executable.path":"C:\Program Files\Java\jdk-18.0.1.1;bin;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;bin;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"} Sporen
OTELTraces |take 2U krijgt resultaten die vergelijkbaar zijn, maar niet precies hetzelfde, als in de volgende tabel:
TraceId SpanId Ouder-ID SpanName SpanStatus SpanKind StartTime EndTime ResourceAttributes TraceAttributes Evenementen Links 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;bin;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;bin;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_SOORT_CLIËNT 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;bin;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;bin;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"} [] []
Verdere gegevensverwerking
Gebruik updatebeleid om de verzamelde gegevens verder te verwerken, volgens de behoeften van de toepassing. Zie Overzicht van updatebeleid voor meer informatie.
In het volgende voorbeeld worden metrische histogramgegevens geëxporteerd naar een histospecifieke tabel met buckets en aggregaties. Voer de volgende opdracht uit in het queryvenster van de webgebruikersinterface van Azure Data Explorer:
.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}]'Met de volgende opdrachten maakt u een tabel die alleen waarden voor het aantal en de som van het metrische type histogram bevat en een updatebeleid koppelt. Voer de volgende opdracht uit in het queryvenster van de webgebruikersinterface van Azure Data Explorer:
.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