Ich hatte vor 2 Wochen die Gelegenheit, mit honeycomb.io zu arbeiten. Hauptsächlich habe ich den Code geändert, der Daten zu Appinsights Azre sendet, die nun benötigt werden, um Daten auch an Honeycomb zu senden. Es war nicht allzu komplex, aber es ist schwer, diese zu erfassen
Protokollzeilen und stellen Sie sicher, dass wir den Endpunkt richtig aufgerufen haben und welche Daten wir gesendet haben. Dafür gibt es ein wunderbares Plugin für Appinsights https://github.com/Socolin/ApplicationInsightsRiderPlugin, aber es gab kein Plugin, das Opentelemetry-Aufrufe anzeigen kann, ja honeycomb.io verwendet das OTEL-Protokoll, was Opentelemetry bedeutet, was mittlerweile eine Art Industriestandard für Beobachtbarkeit ist.
Also musste ich lernen, wie man OpenTelemetry-Debug-Protokolle anzeigt, was nicht einfach zu konfigurieren war, da die OpenTelemetry-API erfordert, dass Sie den Konsolenexporter konfigurieren, der einige Daten in den Protokollen anzeigt, wie unten dargestellt
Activity.TraceId: 39de3d235089b014c5e37abefdc3a7f8 Activity.SpanId: 03ae17902e901577 Activity.TraceFlags: Recorded Activity.ActivitySourceName: Microsoft.AspNetCore Activity.DisplayName: GET Hello Activity.Kind: Server Activity.StartTime: 2024-10-06T21:53:05.9553689Z Activity.Duration: 00:00:00.2187686 Activity.Tags: server.address: localhost server.port: 8080 http.request.method: GET url.scheme: http url.path: /Hello network.protocol.version: 1.1 user_agent.original: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0 http.route: Hello http.response.status_code: 200 Resource associated with Activity: service.name: my-service-name telemetry.sdk.name: opentelemetry telemetry.sdk.language: dotnet telemetry.sdk.version: 1.9.0
Dies musste auf JSON geändert werden, damit ich es analysieren und im Rider-Debug-Fenster besser anzeigen konnte, also habe ich diesen neuen Exporter geschrieben.
{"activity":{"traceId":"b49d03d8b55c2f8dfc9f385b3191fdee","spanId":"47c531f9a5a32dca","activityTraceFlags":"Recorded","parentSpanId":"0000000000000000","activitySourceName":"Microsoft.AspNetCore","activitySourceVersion":"","displayName":"GET Hello","kind":"Server","startTime":"2024-10-06T21:54:22.8551436Z","duration":"00:00:00.0013247","tags":{"server.address":"localhost","server.port":"8080","http.request.method":"GET","url.scheme":"http","url.path":"/Hello","network.protocol.version":"1.1","user_agent.original":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0","http.route":"Hello","http.response.status_code":"200"},"statusCode":"Unset","events":[],"links":[],"resource":{"service.name":"my-service-name","telemetry.sdk.name":"opentelemetry","telemetry.sdk.language":"dotnet","telemetry.sdk.version":"1.9.0"},"rootId":"b49d03d8b55c2f8dfc9f385b3191fdee","operationName":"Microsoft.AspNetCore.Hosting.HttpRequestIn"}}
Jetzt habe ich das JSON-Debug-Protokoll. Alles, was ich brauchte, war, Appinsights aus dem Socolin-Plugin zu entfernen, den Opentelemetry-JSON zu analysieren und ihn im Debug-Fenster anzuzeigen.
Sehen Sie sich hier das Video oder den Screenshot an
Das obige ist der detaillierte Inhalt vonSo veröffentlichen Sie das JetBrains Rider-Plugin für opentelemetry/honeycomb. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!