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 GeT
bereitstellt, wird er GET
zugeordnet, 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. |