Freigeben über


Integrierte Aktivitäten in .NET

Dies ist ein Verweis auf verteilte Ablaufverfolgung Aktivitäten systemintern ausgegeben werden. Die integrierten ActivitySource Instanzen von NET.

System.Net Aktivitäten

HTTP-Clientanforderung

SocketsHttpHandler und HttpClientHandler die HTTP-Clientanforderungsaktivität nach den in OpenTelemetry definierten Empfehlungen HTTP-Clientsemantikkonventionenmelden. Es beschreibt die HTTP-Anforderung, die von HttpClientSendeüberladungen während des Zeitintervalls gesendet wird, in dem der zugrunde liegende Handler die Anforderung abschließt. Das Abschließen der Anforderung umfasst die Zeit bis zum Lesen von Antwortheadern aus dem Netzwerkdatenstrom. Es enthält nicht die Zeit, die das Lesen des Antworttexts verbracht hat. SocketsHttpHandler können Anforderungen erneut versuchen, z. B. bei Verbindungsfehlern oder HTTP-Versions-Downgrades. Wiederholungsversuche werden nicht als separate HTTP-Clientanforderung Aktivitäten gemeldet.

Verfügbarkeit ActivitySource Name OperationName DisplayName
.NET 9+ System.Net.Http System.Net.Http.HttpRequestOut {HTTP method}

Anmerkung

Die System.Net.Http.HttpRequestOut-Aktivität ist tatsächlich in früheren Versionen von .NET verfügbar, die Status, DisplayNameund Attribute (Tags) werden jedoch nur ab .NET 9 aufgefüllt. In früheren Versionen wird das OpenTelemetry.Instrumentation.Http-Paket empfohlen, die Lücken der integrierten Instrumentierung auszufüllen.

Attribute (Tags)

Attribut Art Beschreibung Beispiele Anwesenheit
http.request.method string HTTP-Anforderungsmethode. [1] GET; POST; HEAD; _OTHER Immer
server.address string Hostbezeichner des "URI-Ursprung" HTTP-Anforderung wird gesendet. example.com; 10.1.2.80 Immer
server.port int Port-ID des "URI-Ursprung" HTTP-Anforderung gesendet wird. 80; 8080; 443 Immer
url.full string Absolute URL, die eine Netzwerkressource gemäß RFC3986 [2] beschreibt https://www.foo.bar/search?q=* Immer
error.type string Ursache für Anforderungsfehler: einer der HTTP-Anforderungsfehler in snake_case oder einen vollständigen Ausnahmetyp oder http 4xx/5xx-Statuscode. System.OperationCanceledException; name_resolution_error; secure_connection_error ; 404 Wenn die Anforderung fehlgeschlagen ist.
http.request.method_original string Ursprüngliche HTTP-Methode, die vom Client in der Anforderungszeile gesendet wird. ACL; foo Wenn http.request.method keine bekannte Methode ist.
http.response.status_code int HTTP-Antwortstatuscode. 200 Wenn die Antwort empfangen wurde.
network.protocol.version string Version des verwendeten HTTP-Protokolls. 1.1; 2 Wenn die Antwort empfangen wurde.

[1] http.request.method: Der Wert enthält den Methodennamen, wenn die Methode eine der bekannten Methoden ist, die in RFC9110aufgeführt sind; andernfalls ist der Wert _OTHER. Die vom Benutzer bereitgestellten Methodennamen werden bekannten Namen auf nicht beachtete Weise zugeordnet. Wenn der Benutzer beispielsweise den Namen GeTbereitstellt, wird er GETzugeordnet, und http.request.method_original werden nicht aufgefüllt.

[2] url.full: Um geheime Schlüssel zu vermeiden, wird der Wert standardmäßig redigiert: Die gesamte Abfrage wird durch ein * Zeichen ersetzt, und die Benutzerinformationen & Fragment werden entfernt. Weitere Informationen und Opt-Out-Schalter finden Sie in den URI-Redaction-Dokumentationen.

HTTP-Clientanforderung: Auf Verbindung warten (experimentell)

Diese Aktivität ist ein untergeordnetes Element einer HTTP-Clientanforderung Aktivität. Sie stellt das Zeitintervall dar, in dem die entsprechende Anforderung auf eine verfügbare Verbindung in der Anforderungswarteschlange wartet. Wenn eine kostenlose Verbindung im Pool verfügbar ist, wenn die Anforderung eingeht, wird keine auf die Verbindung warten, Aktivität erstellt wird. Beachten Sie, dass auf die Verbindung warten, nicht die tatsächliche Verbindungseinrichtung darstellt; das von der HTTP-Verbindungseinrichtung Aktivität modelliert wird. SocketsHttpHandler können Anforderungen erneut versuchen, z. B. bei Verbindungsfehlern oder HTTP-Versions-Downgrades. Wiederholungsversuche werden nicht als separate HTTP-Clientanforderung Aktivitäten gemeldet; Jeder neue Verbindungsversuch führt jedoch zu einem neuen wartet auf die Verbindung Aktivität unter der übergeordneten Anforderungsaktivität.

Verfügbarkeit ActivitySource Name OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.WaitForConnection HTTP wait_for_connection {address}:{port}

Trinkgeld

Die Zeit, die zum Abrufen einer Verbindung aus dem Pool benötigt wird, wird auch von der http.client.request.time_in_queue Metrik gemeldet.

Warnung

Diese Aktivität ist experimentell. Es kann in einer zukünftigen Version geändert oder gelöscht werden.

Attribute (Tags)

Attribut Art Beschreibung Beispiele Anwesenheit
error.type string Ursache für Verbindungsfehler: eines der HTTP-Anforderungsfehler in snake_case oder einen vollständigen Ausnahmetyp. System.OperationCanceledException; name_resolution_error; secure_connection_error Wenn der Verbindungsversuch fehlschlägt.

HTTP-Verbindungseinrichtung (experimentell)

Diese Aktivität beschreibt die Einrichtung einer HTTP-Verbindung. In der Regel umfasst dies die Zeit, die zum Auflösen des DNS benötigt wird, die Socketverbindung herzustellen und den TLS-Handshake auszuführen.

Verfügbarkeit ActivitySource Name OperationName DisplayName
.NET 9+ Experimental.System.Net.Http.Connections Experimental.System.Net.Http.Connections.ConnectionSetup HTTP connection_setup {address}:{port}

Es gibt keine Beziehung zwischen der HTTP-Clientanforderung und der HTTP-Verbindungseinrichtung Aktivitäten; Letzteres wird immer eine Stammaktivität sein, die in einer separaten Spur lebt. Wenn jedoch der durch HTTP-Verbindungseinrichtung dargestellte Verbindungsversuch zu einer erfolgreichen HTTP-Verbindung führt und diese Verbindung von einer Anforderung zur Bereitstellung aufgenommen wird, fügt die Instrumentation der HTTP-Clientanforderung eine ActivityLink hinzu, Aktivität, die auf die HTTP-Verbindungseinrichtung Aktivität verweist. Das heißt, jede Anforderung ist mit der Verbindung verknüpft, die die Anforderung bedient hat.

Anmerkung

Wenn HTTP-Verbindungseinrichtung fehlschlägt, wird sie nicht mit einer HTTP-Clientanforderungverknüpft.

Warnung

Diese Aktivität ist experimentell. Es kann in einer zukünftigen Version geändert oder gelöscht werden.

Attribute (Tags)

Attribut Art Beschreibung Beispiele Anwesenheit
error.type string Ursache für Verbindungsfehler: eines der HTTP-Anforderungsfehler in snake_case oder einen vollständigen Ausnahmetyp. System.Net.Sockets.SocketException; name_resolution_error; secure_connection_error Wenn der Verbindungsversuch fehlschlägt.
network.peer.address string Peer-IP-Adresse der Socketverbindung. 10.5.3.2 Wenn der Verbindungsversuch erfolgreich ist.
server.address string Hostbezeichner des "URI-Ursprung" die ursprüngliche HTTP-Anforderung gesendet wird. example.com Immer
server.port int Port-ID des "URI-Ursprung" die ursprüngliche HTTP-Anforderung gesendet wird. Immer
url.scheme string Das URI-Schema Komponente, die das verwendete Protokoll identifiziert. http; https Immer

DNS-Suche (experimentell)

Diese Aktivität beschreibt DNS-Nachschlagevorgänge, die über Dns Aufrufe ausgeführt werden. Er entspricht dem verwalteten Aufruf und nicht den physischen DNS-Nachschlagevorgängen, die vom zugrunde liegenden Betriebssystemlöser durchgeführt werden. Wenn die DNS-Suche Aktivität zusammen mit einer HTTP-Verbindungseinrichtung Aktivität gemeldet wird, wird DNS-Suche zu einem untergeordneten Element HTTP-Verbindungseinrichtung.

Verfügbarkeit ActivitySource Name OperationName DisplayName
.NET 9+ Experimental.System.Net.NameResolution Experimental.System.Net.NameResolution.DnsLookup DNS [reverse] lookup {question}

Trinkgeld

Die DNS-Nachschlagedauer wird auch von der metrik dns.lookup.duration gemeldet.

Warnung

Diese Aktivität ist experimentell. Es kann in einer zukünftigen Version geändert oder gelöscht werden.

Attribute (Tags)

Attribut Art Beschreibung Beispiele Anwesenheit
error.type string Der Fehlercode oder Ausnahmename. [1] host_not_found Wenn die Suche fehlschlägt.
dns.answers string[] Liste der aufgelösten IP-Adressen (für DNS-Suche) oder ein einzelnes Element, das domänennamen enthält (für reverse Lookup). ["10.0.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] Wenn die Suche erfolgreich ist.
dns.question.name string Der Domänenname oder eine IP-Adresse, die abgefragt wird. example.com Immer

[1]: Der Wert ist entweder ein DNS-bezogenes SocketError in snake_case (host_not_found, try_again, no_recovery, address_family_not_supported) oder ein vollständiger Ausnahmename.

Socketverbindung (experimentell)

Diese Aktivität beschreibt die Einrichtung einer Socket Verbindung über Connect oder ConnectAsync. Wenn die Socketverbindung Aktivität zusammen mit einer HTTP-Verbindungseinrichtung Aktivität gemeldet wird, wird Socketverbindung zu einem untergeordneten Element HTTP-Verbindungseinrichtung.

Verfügbarkeit ActivitySource Name OperationName DisplayName
.NET 9+ Experimental.System.Net.Sockets Experimental.System.Net.Sockets.Connect socket connect {address}[:{port}]

Warnung

Diese Aktivität ist experimentell. Es kann in einer zukünftigen Version geändert oder gelöscht werden.

Attribute (Tags)

Attribut Art Beschreibung Beispiele Anwesenheit
error.type string Die SocketError in snake_case. address_already_in_use; connection_refused Wenn der Socketverbindungsversuch fehlschlägt.
network.peer.address string Peeradresse der Netzwerkverbindung – IP-Adresse oder Unix-Domänensocketname. 10.5.3.2; /tmp/my.sock IP- und UDS-Sockets.
network.peer.port int Peerportnummer der IP-Verbindung. 65123 IP-Sockets.
network.transport string OSI-Transportschicht oder prozessübergreifenden Kommunikationsmethode. tcp; udp; unix IP- und UDS-Sockets.
network.type string OSI-Netzwerkschicht oder nicht-OSI-Entsprechung. ipv4; ipv6 IP-Sockets.

TLS-Handshake (experimentell)

Diese Aktivität beschreibt den TLS-Client oder den Server-Handshake, der über SslStreamAuthentifizierungsmethoden ausgeführt wird. Wenn die TLS-Handshake- Aktivität für die clientseitige Authentifizierung zusammen mit der HTTP-Verbindungseinrichtung Aktivität gemeldet wird, wird TLS-Handshake- zu einem untergeordneten Element HTTP-Verbindungseinrichtung.

Verfügbarkeit ActivitySource Name OperationName DisplayName
.NET 9+ Experimental.System.Net.Security Experimental.System.Net.Security.TlsHandshake TLS client handshake {host} -oder- TLS server handshake

Warnung

Diese Aktivität ist experimentell. Es kann in zukünftigen Versionen geändert oder gelöscht werden.

Attribute (Tags)

Attribut Art Beschreibung Beispiele Anwesenheit
error.type string Beschreibt eine Fehlerklasse, mit der der Vorgang beendet wurde. System.Net.Security.Authentication.AuthenticationException; System.OperationCanceledException Wenn der Handshake fehlschlägt.
server.address string Die Servernamensanzeige (SNI) in der Nachricht "Client Hello" während der TLS-Handshake verwendet. example.com Beim Authentifizieren als Client.
tls.protocol.name string Normalisierter Protokollname in Kleinbuchstaben, der aus der ursprünglichen Zeichenfolge der ausgehandelten SSL/TLS-Protokollversion ssl; tls Wenn die Protokollinformationen verfügbar sind.
tls.protocol.version string Numerischer Teil der version analysiert aus der ursprünglichen Zeichenfolge der ausgehandelten SSL/TLS-Protokollversion 1.2; 1.3 Wenn die Protokollinformationen verfügbar sind.