Zum Hauptinhalt springen

Konfigurieren Sie einen benutzerdefinierten OpenTelemetry-Collector für Office-Agenten

Heute aktualisiert

Sie können vollständige Audit-Telemetrie von Office-Agenten an Ihren eigenen OpenTelemetry (OTEL)-Collector weiterleiten. Dies gibt Ihrer Organisation vollständige Kontrolle über Aufbewahrung, Verschlüsselung und Integration mit Ihrer SIEM- oder Observability-Plattform.

Diese Anleitung behandelt die Aktivierung eines benutzerdefinierten Collectors, welche Daten Sie erhalten, und die vollständige Span-Schema-Referenz.

Benutzerdefinierte OTEL-Collector sind für Claude Enterprise-Organisationen und für Direct-Provider-Bereitstellungen (Amazon Bedrock, Google Vertex AI oder ein Gateway) verfügbar.

Was Sie erhalten

Wenn Sie einen benutzerdefinierten Collector konfigurieren, senden Office-Agenten Trace-Daten, die jeden Benutzerzug abdecken. Jeder Zug erzeugt einen Baum von Spans, die den Prompt, Modellaufrufe, Tool-Ausführungen, Datei-Uploads und Kontext-Komprimierungsereignisse erfassen.

Ihr Collector empfängt alle Span-Attribute, einschließlich derjenigen, die benutzergenerierte Inhalte enthalten (Prompt-Text, Tool-Eingaben und -Ausgaben, Dokument-URLs und Dateinamen). Keine Attribute werden redaktionell bearbeitet oder gefiltert. Der Antworttext des Assistenten ist nicht in den emittierten Span-Daten enthalten. Ihre Organisation besitzt diese Daten.

Wichtig: Metriken werden nicht an benutzerdefinierte Collector gesendet. Der Namespace office_agent.* wird nur an Anthropic weitergeleitet. Jedoch erscheint jede Zählerinkrementierung auch als Span-Ereignis auf dem aktiven Span, sodass die gleichen Signale in Ihren Traces verfügbar sind.

Telemetrie wird über OTLP/HTTP an Ihren Endpunkt unter {your_url}/v1/traces gesendet. gRPC wird nicht unterstützt, da das Add-in in einer Office WebView ausgeführt wird.


Aktivieren Sie einen benutzerdefinierten Collector

Das Setup unterscheidet sich je nachdem, wie sich Ihre Organisation bei Claude authentifiziert.

Wichtig: Wenn ein benutzerdefinierter Endpunkt konfiguriert ist, werden Telemetrie-Daten ausschließlich an Ihren Collector gesendet. Spans werden nicht doppelt an Anthropic gesendet.

Claude Enterprise (OAuth)-Organisationen

Ein Organisationsadministrator legt den Collector-Endpunkt in der Claude.ai-Administrationskonsole unter Organisationseinstellungen > Office-Agenten fest. Die Einstellung gilt organisationsweit.

Einstellung

Beschreibung

otlp_endpoint

Basis-URL Ihres OTLP-Collectors. Das Add-in fügt /v1/traces an. HTTPS wird dringend empfohlen.

otlp_headers

Optionale Authentifizierungsheader, formatiert gemäß der OpenTelemetry-Spezifikation: key1=value1,key2=value2

Das Protokoll muss HTTP-basiertes OTLP sein. gRPC wird zum Zeitpunkt der Konfiguration abgelehnt.

Direct-Provider-Bereitstellungen (Amazon Bedrock, Google Vertex AI, Gateway)

Bei Bereitstellungen, die sich gegen Ihren eigenen Modell-Provider authentifizieren, anstatt gegen Claude.ai, wird der Collector-Endpunkt über einen von drei Konfigurationskanälen bereitgestellt. Alle drei verwenden die gleichen zwei Schlüssel.

Empfohlen: Verwenden Sie das claude-in-office-Plugin für Claude Code. Es führt Sie durch die Generierung des Manifests, die Registrierung von Entra-Erweiterungsattributen und die Einrichtung eines Bootstrap-Endpunkts mit vorkonfiguriertem otlp_endpoint und otlp_headers. Die drei unten dokumentierten Kanäle dienen als Referenz und für manuelle Einrichtung.

Schlüssel

Format

Beschreibung

otlp_endpoint

HTTPS-URL

Basis-URL Ihres OTLP-Collectors. Das Add-in entfernt alle nachgestellten Schrägstriche und fügt /v1/traces an.

otlp_headers

key1=value1,key2=value2

Optionale Authentifizierungsheader. Gleiches Format wie die Umgebungsvariable OpenTelemetry OTEL_EXPORTER_OTLP_HEADERS.

Wenn otlp_endpoint nicht gesetzt oder leer ist, wird kein benutzerdefinierter Collector konfiguriert und das Add-in fällt auf das Standardverhalten zurück.

Hinweis: Diese Konfigurationskanäle gelten nur für Microsoft Office-Bereitstellungen. Google Workspace-Add-ins werden separat konfiguriert.

Kanal 1: Manifest-URL-Parameter

Fügen Sie die Schlüssel als Abfrageparameter an die Taskpane-URL in Ihrem benutzerdefinierten Add-in-Manifest an:

URL-kodieren Sie die Werte. Dies wendet die Konfiguration auf jeden Benutzer an, der das Manifest installiert.

Kanal 2: Azure Entra ID-Verzeichniserweiterung

Für benutzerspezifische Konfiguration registrieren Sie die Schlüssel als Entra ID-Verzeichniserweiterungsattribute und weisen Sie sie über Microsoft Graph zu. Das Add-in liest sie aus dem ID-Token des Benutzers mithilfe von Nested App Authentication (NAA).

Die Anspruchsnamen im ausgegebenen ID-Token folgen dem Azure-Verzeichniserweiterungsformat:

Anspruch

Zuordnung zu

extn.otlp_endpoint

otlp_endpoint

extn.otlp_headers

otlp_headers

Legen Sie diese benutzerspezifisch mit einem Graph PATCH gegen das Benutzerobjekt fest. Azure kodiert Verzeichniserweiterungswerte als Single-Element-Arrays im ID-Token; das Add-in entpackt sie automatisch. Dieser Kanal erfordert entra_sso=1 in den Manifest-URL-Parametern, um die NAA-Token-Erfassung zu aktivieren.

Kanal 3: Bootstrap-Endpunkt-Antwort

Wenn Ihre Bereitstellung einen Bootstrap-Endpunkt verwendet (einen JSON-Endpunkt, den Ihre Organisation hostet und den das Add-In beim Start aufruft), fügen Sie die Schlüssel in den Antwortkörper ein:

{
"otlp_endpoint": "https://otel-collector.your-domain.com",
"otlp_headers": "Authorization=Bearer <token>"
}

Die Bootstrap-Endpunkt-URL selbst wird über bootstrap_url entweder in den Manifest-URL-Parametern oder in einem Entra-extn.bootstrap_url-Anspruch konfiguriert. Wenn ein Entra-ID-Token erworben wurde, wird es als Bearer-Autorisierungsheader an den Bootstrap-Endpunkt übergeben, damit Ihr Endpunkt den Benutzer authentifizieren kann, bevor er die benutzerspezifische Konfiguration zurückgibt.

Priorität

Wenn mehrere Kanäle einen Wert bereitstellen, überschreiben spätere Kanäle frühere: Manifest-Parameter werden zuerst gelesen, dann Entra-Ansprüche, dann die Bootstrap-Antwort. Die Bootstrap-Antwort hat Vorrang.

Falls noch nicht geschehen, ist der schnellste Weg das claude-in-office-Plugin.


Bereitstellungsmodi

Der benutzerdefinierte Collector-Export ist in beiden Bereitstellungsmodi verfügbar:

  • Claude.ai Enterprise (OAuth): vollständige Audit-Spur einschließlich Benutzeridentität (user.email, user.account_uuid, organization.id), MCP-Server-Metadaten und Datei-Upload-Datensätze.

  • Direkter Anbieter (Bedrock, Vertex AI, Gateway): Kern-Audit-Spur (Prompts, Tool-Eingaben und -Ausgaben, Dokument-URLs), aber keine Benutzeridentität, keine MCP-Metadaten und keine Datei-Upload-Spans. Die Benutzer-Attribution erfordert die Korrelation von session.id mit Ihren eigenen Identity-Provider-Protokollen.

Die Kern-Audit-Nutzlast ist in beiden Modi identisch. Direktanbieter-Bereitstellungen verfügen nicht über Claude.ai-Kontokontext, daher fehlen Attribute, die vom Claude.ai-Benutzer- oder Organisationsprofil abgeleitet sind. Siehe die [claude.ai-only]-Tags im Span-Schema unten für die vollständige Liste.

Oberflächen- und Anbieter-Labels

Jeder Span enthält zwei Labels, die identifizieren, welche Office-Anwendung und Plattform ihn generiert haben. Verwenden Sie diese als Ihre primären Dimensionen zum Filtern und für Dashboards.

Label

Werte

agent.surface

sheet (Excel/Google Sheets), doc (Word), slide (PowerPoint)

agent.vendor

m (Microsoft)


Span-Referenz

Jede Benutzer-Aktion erzeugt einen Eltern-/Kind-Baum von bis zu fünf Span-Typen. Attribute, die mit [content] gekennzeichnet sind, enthalten benutzergenerierte Daten; diese bilden Ihre Audit-Nutzlast. Attribute, die mit [claude.ai-only] gekennzeichnet sind, werden nur ausgefüllt, wenn sich der Benutzer mit einem Claude-Konto anmeldet; sie fehlen bei Bedrock-, Vertex-AI- und Gateway-Bereitstellungen. Fehlende Attribute werden vollständig aus dem Span weggelassen (kein Schlüssel mit Nullwert).

Der file.upload-Span und alle mcp.*-Attribute sind ebenfalls [claude.ai-only], da Datei-Upload und MCP-Server-Verbindungen Claude-Plattform-Features sind.

Bei direkten Anbieter-Bereitstellungen sollte die Benutzeridentität über session.id und document.url korreliert werden, verbunden mit den Sitzungsprotokollen Ihres Identity Providers.

Ressourcen-Attribute

Diese Attribute erscheinen auf jedem Span:

Attribut

Beschreibung

service.name

Fester Wert: office-agent

service.version

Fester Wert: 1.0.0

git.sha

Build-Commit-Identifier

agent.query (Root-Span)

Ein Span pro Benutzer-Aktion. Dies ist die Wurzel des Span-Baums und enthält Sitzungsidentität, Dokumentkontext und MCP-Server-Status. SpanKind: INTERNAL.

Attribut

Beschreibung

agent.surface

sheet | doc | slide

agent.vendor

m

user.message [content]

Die Eingabeaufforderung des Benutzers (erste 4000 Zeichen)

session.id

Undurchsichtiger Sitzungsidentifier

user.email [claude.ai-only]

E-Mail-Adresse des Benutzers

user.bucket [claude.ai-only]

Deterministischer Hash-Bucket (SHA-256 der E-Mail, mod 30)

user.account_uuid [claude.ai-only]

Claude-Konto-UUID

document.url [content]

URL des offenen Office-Dokuments

organization.id [claude.ai-only]

Claude-Organisations-UUID

org.rate_limit_tier [claude.ai-only]

Claude-Abonnement-Tier

org.type [claude.ai-only]

Claude-Organisationstyp

agent.selected_model

Vom Benutzer für diese Sitzung ausgewähltes Modell

office.platform

PC | Mac | OfficeOnline | iOS | Android | Universal

office.version

Office-Build-Nummer

mcp.configured_count [claude.ai-only]

Anzahl der konfigurierten MCP-Server

mcp.connected_count [claude.ai-only]

Anzahl der erfolgreich verbundenen MCP-Server

mcp.failed_count [claude.ai-only]

Anzahl der MCP-Server, die keine Verbindung herstellen konnten

mcp.fetch_status [claude.ai-only]

success | error | timeout | no_auth | not_attempted

mcp.fetch_duration_ms [claude.ai-only]

Abrufdauer der MCP-Registry

mcp.fetch_http_status [claude.ai-only]

HTTP-Statuscode beim Abrufen der MCP-Registry

mcp.servers [content] [claude.ai-only]

Serialisierte MCP-Serverdetails (Namen, Toolanzahl, Fehlermeldungen)

file.upload.count [claude.ai-only]

Anzahl der an diesen Zug angehängten Dateien

file.upload.total_bytes [claude.ai-only]

Insgesamt hochgeladene Bytes

file.upload.image_count [claude.ai-only]

Anzahl der Bildanhänge

file.upload.document_count [claude.ai-only]

Anzahl der Dokumentanhänge

file.upload.other_count [claude.ai-only]

Anzahl der sonstigen Anhänge

error.name

Name der Ausnahmeklasse (bei Fehler vorhanden)

agent.query_phase

Phase, in der die Abfrage fehlgeschlagen ist (bei Fehler vorhanden)

agent.stream

Ein Span pro API-Aufruf an Claude, als untergeordnetes Element des Abfrage-Spans. SpanKind: CLIENT.

Attribut

Beschreibung

model

Modell-ID für diesen Aufruf

max_tokens

Maximal angeforderte Ausgabe-Token

agent.message_count

Anzahl der Nachrichten in der Konversation beim Stream-Start

input_tokens

Abgerechnete Eingabe-Token (aus API-Antwort)

output_tokens

Abgerechnete Ausgabe-Token (aus API-Antwort)

cache_read_tokens

Token aus Prompt-Cache bereitgestellt

cache_creation_tokens

Token in Prompt-Cache geschrieben

stop_reason

end_turn | tool_use | max_tokens | usw.

request_id

Anthropic-API-Header request-id, verwendbar für Support-Korrelation

Hinweis zum Prompt-Caching: Das Add-in fordert Prompt-Caching bedingungslos an. Die Attribute cache_read_tokens und cache_creation_tokens werden aus der API-Antwort des Anbieters gesetzt und werden weggelassen, wenn die Antwort diese nicht enthält. Prompt-Caching ist für die Claude Developer Platform verfügbar; zum Zeitpunkt dieser Veröffentlichung geben Amazon Bedrock und Google Vertex AI diese Felder noch nicht über den vom Add-in verwendeten Client zurück. Wenn die Unterstützung bei Ihrem Anbieter verfügbar wird, werden diese Attribute automatisch angezeigt.

agent.tool_execution

Ein Span pro Tool-Aufruf als untergeordnetes Element des Stream-Span. SpanKind: INTERNAL. Dies ist der primäre Datensatz der Aktionen, die das Modell gegen das Dokument ausgeführt hat.

Attribut

Beschreibung

tool_name

Tool-Bezeichner (z. B. get_cell_ranges, execute_office_js, edit_slide_xml)

tool.id

Eindeutige ID dieses Tool-Aufrufs

tool.caller

server | client

tool.owner

first_party | mcp | server

tool.read_write

read | write | read_write

tool.accept_decision

manual | auto_accept | deferred

tool.input [content]

Serialisierte Tool-Eingabe (erste 4000 Zeichen)

tool.success

Boolesch

tool.output [content]

Serialisierte Tool-Ausgabe (erste 4000 Zeichen)

tool.output_chars

Vollständige Ausgabelänge in Zeichen (zur Erkennung von Kürzungen verwenden)

tool.error_type

Fehlerklassifizierung (bei Fehler vorhanden)

sheet.cells_read

Gelesene Zellen (nur Blattoberfläche)

sheet.cells_written

Geschriebene Zellen (nur Blattoberfläche)

sheet.cells_copied

Kopierte Zellen (nur Blattoberfläche)

Hinweis: Das Attribut tool.accept_decision dokumentiert, wie die Genehmigungsentscheidung getroffen wurde: manual (der Benutzer hat diese spezifische Aktion genehmigt), auto_accept (der Benutzer hatte zuvor eine dauerhafte Genehmigung erteilt), oder deferred (die Aktion wurde zur späteren Überprüfung in die Warteschlange eingereiht). Verwenden Sie dies, um Genehmigungsmuster in Ihrer Organisation zu überprüfen.

agent.compaction

Eine Zusammenfassung pro Konversation mit automatischer Zusammenfassung, ausgelöst wenn der Kontext sich dem Fenster-Limit nähert. SpanKind: CLIENT.

Attribut

Beschreibung

compaction.pre_tokens

Token-Anzahl vor der Zusammenfassung

compaction.post_tokens

Token-Anzahl nach der Zusammenfassung

compaction.tokens_saved

Differenz

compaction.success

Boolesch

compaction.trigger

Derzeit immer reaktiv

Dieser Span enthält auch agent.surface, agent.vendor, session.id, user.email [claude.ai-only], user.bucket [claude.ai-only], office.platform und office.version, dupliziert vom Root-Span, damit Sie Komprimierungsereignisse unabhängig abfragen können.

file.upload [claude.ai-only]

Ein Span pro einzelnem Datei-Upload als untergeordneter Span des Query-Spans. SpanKind: CLIENT. Dieser Span-Typ wird nur angezeigt, wenn sich Benutzer mit einem Claude.ai-Konto anmelden. Datei-Upload ist bei direkten Provider-Bereitstellungen nicht verfügbar.

Attribut

Beschreibung

file.upload.filename [content]

Ursprünglicher Dateiname

file.upload.size_bytes

Dateigröße

file.upload.mime_type

MIME-Typ

file.upload.file_id

Anthropic Files API-Bezeichner

file.upload.success

Boolesch


Span-Ereignisse

Span-Ereignisse sind Zeitstempel-Marker, die an die obigen Spans angehängt sind. Sie erfassen Lebenszyklusübergänge und äquivalente Zählersignale.

  • agent.query: exception {exception.type}; file_upload {file_id, mime_type, content_category}

  • agent.stream: first_token; stream_complete; stream_error {exception.type}

  • agent.tool_execution: tool_init; tool_run; tool_result; tool_error {error_type}

  • agent.compaction: compaction_start; compaction_complete; compaction_error {exception.type}

  • file.upload: exception {exception.type}

Jeder interne Produktzähler zeichnet auch ein Span-Ereignis mit demselben Namen auf dem aktuell aktiven Span auf und bietet das Äquivalent des Metrik-Streams in Ihren Trace-Daten. Das office_agent.token.usage-Ereignis wird auf jedem agent.stream-Span einmal pro Nicht-Null-Token-Typ mit Attributen {token_usage.type: input | output | cacheRead | cacheCreation, token_usage.model, token_usage.token_count} ausgegeben. Dies spiegelt die *.token.usage-Zählerform wider, die von anderen Anthropic-Produkten ausgegeben wird, sodass ein einzelner Collector Token-Kosten über Produkte hinweg aggregieren kann, indem er nach service.name gruppiert.


Oberflächenspezifisches Verhalten

Das Telemetrie-Schema ist über alle Oberflächen hinweg konsistent. Dies sind die Unterschiede:

  • Sheets (Excel): agent.tool_execution-Spans enthalten sheet.cells_read-, sheet.cells_written- und sheet.cells_copied-Attribute. office_agent.cell_edit_collision_total-Span-Ereignisse werden angezeigt, wenn ein Benutzer sich in der Mitte einer Zellenbearbeitung befindet, während ein Tool versucht zu schreiben.

  • Documents (Word): document-edit-Trichter-Ereignisse verfolgen den Bearbeitungslebenszyklus: office_agent.doc_edit_received_total, office_agent.doc_edit_parsed_total, office_agent.doc_edit_applied_total, office_agent.doc_proposed_edit_reviewed_total. Keine sheet.cells_*-Attribute.

  • Slides (PowerPoint): keine oberflächenspezifischen Attribute oder Ereignisse über das gemeinsame Schema hinaus.


Rekonstruktion einer Benutzersitzung

Claude.ai-Bereitstellungen

  • Filtern Sie Spans nach user.email (oder user.account_uuid) und session.id.

  • Ordnen Sie agent.query-Spans nach Start-Zeitstempel; jeder ist eine Benutzereingabe.

  • Für jeden Turn ist user.message die Eingabeaufforderung und document.url ist die bearbeitete Datei.

  • Untergeordnete agent.tool_execution-Spans, nach Zeitstempel geordnet, sind die durchgeführten Aktionen: tool.input ist das Versuchte, tool.output ist das Ergebnis, tool.accept_decision zeichnet auf, ob der Benutzer explizit genehmigt hat.

Direkte Provider-Bereitstellungen

Das Add-In hat in diesem Modus keine Claude.ai-Benutzeridentität, daher enthalten Spans keine user.email oder user.account_uuid. Um Aktivität einem Benutzer zuzuordnen:

  • Filtern Sie Spans nach session.id, um eine kontinuierliche Add-In-Sitzung zu isolieren.

  • Verwenden Sie document.url, um die bearbeitete Datei zu identifizieren.

  • Korrelieren Sie die Sitzung mit den Protokollen Ihres Identitätsanbieters: Entra-Anmeldeereignisse, Gateway-Zugriffsprotokolle oder das Anforderungsprotokoll Ihres Bootstrap-Endpunkts (das das Entra ID-Token des Benutzers als Bearer-Header empfängt).

  • Sobald eine Sitzung einem Benutzer zugeordnet ist, ist die Rekonstruktion pro Durchgang identisch: agent.query sortiert nach Zeitstempel, mit user.message, tool.input, tool.output und tool.accept_decision als Audit-Trail.

Dies erzeugt ein vollständiges, geordnetes Transkript der Interaktion in beiden Bereitstellungsmodi.

Hat dies deine Frage beantwortet?