หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
Microsoft OpenTelemetry Distro เป็นการกระจายการเฝ้าสังเกตแบบครบวงจรที่มอบประสบการณ์การเริ่มต้นใช้งานหนึ่งเดียวสำหรับการรวบรวมการติดตาม เมตริก และบันทึกจากแอปพลิเคชันทั้งแบบใช้เอเจนต์และไม่ใช้เอเจนต์ รองรับความสามารถในการเฝ้าสังเกตสำหรับ Microsoft Agent 365, Microsoft Foundry, Azure Monitor และระบบส่วนหลังที่เข้ากันได้กับ OpenTelemetry Protocol (OTLP) Distro รองรับ .NET, Node.js และ Python และมาแทนการตั้งค่าที่แยกส่วนในสแต็กความสามารถในการเฝ้าสังเกตหลายรายการด้วยการนำเข้าครั้งเดียวและการเรียกใช้การกำหนดค่าครั้งเดียว
สวัสดิการที่สำคัญ
ข้อดีของ Microsoft OpenTelemetry Distro มีดังนี้:
- แพคเกจเดียว, API เดียว: แทนที่แพคเกจตัวส่งออกและการวัดค่าระบบหลายรายการด้วยการขึ้นต่อกันรายการเดียว
- การรองรับระบบส่วนหลังหลายระบบ: ส่งข้อมูลการวัดและส่งข้อมูลทางไกลไปยัง Azure Monitor, จุดเชื่อมต่อใดๆ ที่เข้ากันได้กับ OpenTelemetry Protocol (OTLP) เช่น Datadog, Grafana หรือ New Relic และ Microsoft Agent 365 พร้อมกัน
- การวัดค่าระบบในตัว: ใช้การวัดค่าระบบอัตโนมัติสำหรับ HTTP, ฐานข้อมูล, Azure SDK, ฟังก์ชัน Azure และอื่น ๆ โดยไม่ต้องกำหนดค่าเพิ่มเติม
- อิงตามมาตรฐาน: สร้างบน OpenTelemetry ซึ่งเป็นเฟรมเวิร์กการเฝ้าสังเกตมาตรฐานอุตสาหกรรม
- ต้นแบบขั้นต่ำ: เพิ่มการนําเข้าครั้งเดียวและการเรียกใช้ฟังก์ชันครั้งเดียวไปยังจุดเข้าใช้งานแอปพลิเคชันของคุณ
การติดตั้งและการกำหนดค่า
คู่มือฉบับนี้แสดงวิธีเพิ่มระบบเฝ้าสังเกตให้กับแอปพลิเคชันของคุณด้วย Microsoft OpenTelemetry Distro Distro จะรวบรวมการติดตาม, เมตริกและบันทึกโดยอัตโนมัติด้วยการวัดค่าระบบในตัว และส่งออกข้อมูลการวัดและส่งข้อมูลทางไกลไปยัง Azure Monitor, จุดเชื่อมต่อ OpenTelemetry Protocol (OTLP) ใด ๆ หรือ Microsoft Agent 365
ติดตั้งไลบรารี
เมื่อต้องการเริ่มต้นใช้งาน Microsoft OpenTelemetry Distro ให้ติดตั้งไลบรารีที่เหมาะสมสำหรับแพลตฟอร์มการพัฒนาของคุณโดยใช้ตัวจัดการแพคเกจของภาษาของคุณ
โครงแบบ
ตัวส่งออก Agent 365 ไม่ใช้สตริงการเชื่อมต่อ แต่ค้นหาจุดเชื่อมต่อโดยอัตโนมัติตามผู้เช่า เมื่อต้องการเปิดใช้งานการส่งออกไปยัง Agent 365 ให้ตั้งค่าเป้าหมายของตัวส่งออกและกำหนดตัวแก้ไขโทเค็นที่คืนค่าโทเค็นการเข้าถึงสำหรับรหัสเอเจนต์และรหัสผู้เช่าที่กำหนด
เรียกใช้ use_microsoft_opentelemetry() เพื่อเปิดใช้งานการเฝ้าสังเกต
from microsoft.opentelemetry import use_microsoft_opentelemetry
from microsoft.opentelemetry.a365.hosting.token_cache_helpers import AgenticTokenCache
token_cache = AgenticTokenCache()
use_microsoft_opentelemetry(
enable_a365=True,
a365_token_resolver=lambda agent_id, tenant_id: (
(t := asyncio.run(token_cache.get_observability_token(agent_id, tenant_id)))
and t.token or None
),
)
สำหรับการแก้ไขโทเค็นแบบกำหนดเอง (แทนที่จะใช้ตัวแก้ไขโทเค็นเริ่มต้น) ดูที่ ตัวแก้ไขโทเค็นด้วยตนเอง
คุณสามารถปรับแต่งลักษณะการทำงานของตัวส่งออกได้โดยการส่ง a365_*kwargs เสริมไปยัง use_microsoft_opentelemetry()
| พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|
a365_use_s2s_endpoint |
เมื่อ True ใช้พาธของจุดเชื่อมต่อแบบบริการต่อบริการ |
False |
a365_max_queue_size |
ขนาดคิวสูงสุดสำหรับตัวประมวลผลชุดงาน | 2048 |
a365_scheduled_delay_ms |
หน่วงเวลาเป็นมิลลิวินาทีระหว่างชุดงานการส่งออก | 5000 |
a365_exporter_timeout_ms |
การหมดเวลาในหน่วยมิลลิวินาทีสำหรับการดำเนินการส่งออก | 30000 |
a365_max_export_batch_size |
ขนาดชุดงานสูงสุดสำหรับการดำเนินการส่งออก | 512 |
ส่งผ่านบริบท
เพื่อรักษาความสามารถในการเฝ้าสังเกตในการดำเนินการ Agent 365 แบบกระจาย ให้ส่งผ่านบริบท เมื่อคุณส่งผ่านบริบทผ่านเอเจนต์และบริการของคุณ คุณจะมั่นใจได้ว่าการติดตาม บันทึก และเมตริกจะถูกเชื่อมโยงกันอย่างเหมาะสมตลอดวงจรชีวิตของคำขอทั้งหมด ความสัมพันธ์นี้จําเป็นสําหรับประสบการณ์การตรวจสอบของ Microsoft Agent 365 ที่สมบูรณ์และมีประสิทธิภาพ
แอตทริบิวต์ Baggage
ใช้ BaggageBuilder เพื่อกำหนดข้อมูลตามบริบทที่ส่งผ่านทุกสแปนในคำขอ
SDK มีการนำ SpanProcessor มาใช้ ซึ่งจะคัดลอกรายการ baggage ที่ไม่ว่างเปล่าทั้งหมดไปยังสแปนที่เพิ่งเริ่มต้นใหม่โดยไม่เขียนทับแอตทริบิวต์ที่มีอยู่
from microsoft.opentelemetry.a365.core import BaggageBuilder
with (
BaggageBuilder()
.tenant_id("tenant-123")
.agent_id("agent-456")
.conversation_id("conv-789")
.build()
):
# Any spans started in this context will receive these as attributes
pass
หากต้องการเติมข้อมูล BaggageBuilder โดยอัตโนมัติจาก TurnContext ให้ใช้ตัวช่วย populate ในแพคเกจ microsoft-opentelemetry ตัวช่วยนี้จะแยกรายละเอียดผู้เรียกใช้ เอเจนต์ ผู้เช่า ช่องทาง และการสนทนาจากกิจกรรมโดยอัตโนมัติ
from microsoft.opentelemetry.a365.core import BaggageBuilder
from microsoft.opentelemetry.a365.hosting.scope_helpers.populate_baggage import populate
builder = BaggageBuilder()
populate(builder, turn_context)
with builder.build():
# Baggage is auto-populated from the TurnContext activity
pass
มิดเดิลแวร์ Baggage
หากเอเจนต์ของคุณใช้แพคเกจการผนวกรวมโฮสติ้ง ให้ลงทะเบียนมิดเดิลแวร์ Baggage เพื่อเติมค่า Baggage โดยอัตโนมัติสำหรับทุกคำขอที่เข้ามา ขั้นตอนนี้ขจัดความจำเป็นในการเรียกใช้ BaggageBuilder ด้วยตนเองในตัวจัดการกิจกรรมแต่ละตัว
ใน Python ลงทะเบียนมิดเดิลแวร์ Baggage ผ่าน ObservabilityHostingManager.configure() แทนการลงทะเบียนโดยตรงบนอะแดปเตอร์
from microsoft.opentelemetry.a365.hosting import ObservabilityHostingManager, ObservabilityHostingOptions
options = ObservabilityHostingOptions(enable_baggage=True)
ObservabilityHostingManager.configure(adapter.middleware_set, options)
มิดเดิลแวร์จะข้ามการตั้งค่า Baggage สําหรับการตอบกลับแบบอะซิงโครนัส (เหตุการณ์ ContinueConversation) เพื่อหลีกเลี่ยงการเขียนทับ Baggage ที่คําขอต้นทางตั้งค่าไว้แล้ว
ตรวจสอบความถูกต้องของข้อมูลที่ไปยังผลิตภัณฑ์
เพื่อดูข้อมูลการวัดและส่งข้อมูลทางไกลของเอเจนต์ใน Microsoft Purview หรือ Microsoft Defender โปรดตรวจสอบให้แน่ใจว่าเป็นไปตามข้อกำหนดต่อไปนี้:
- Microsoft Purview: ต้องเปิดการตรวจสอบสำหรับองค์กรของคุณ สำหรับคำแนะนำ ดูที่ เปิดหรือปิดการตรวจสอบ
-
Microsoft Defender: ต้องกำหนดค่าการค้นหาภัยคุกคามขั้นสูงเพื่อเข้าถึงตาราง
CloudAppEventsโปรดดูรายละเอียดที่ ตาราง CloudAppEvents ในสคีมาการค้นหาภัยคุกคามขั้นสูง
การวัดค่าระบบอัตโนมัติ
Microsoft OpenTelemetry Distro รวมไปป์ไลน์ OpenTelemetry มาตรฐานเข้ากับการวัดค่าระบบที่ดูแลโดย Microsoft Distro สามารถรวบรวมข้อมูลการวัดและส่งข้อมูลทางไกลของแอปพลิเคชัน การวัดและส่งข้อมูลทางไกลของโครงสร้างพื้นฐาน และการวัดและส่งข้อมูลทางไกลของเอเจนต์หรือ AI สร้างสรรค์ ขึ้นอยู่กับภาษาและการกำหนดค่า
| ประเภท | ขอบเขตการครอบคลุม |
|---|---|
| ไปป์ไลน์สัญญาณ | การติดตาม เมตริก และบันทึก |
| การตรวจหาทรัพยากร | บริบทรันไทม์ของบริการ โฮสต์ คลาวด์ และ Azure ตามที่รองรับ |
| การวัดค่าระบบของโครงสร้างพื้นฐาน | HTTP, ASP.NET Core, Azure SDK, ไคลเอ็นต์ฐานข้อมูล และเฟรมเวิร์กการบันทึกที่รองรับ |
| การวัดค่าระบบสำหรับ AI สร้างสรรค์ | OpenAI, Azure OpenAI, Semantic Kernel, LangChain, OpenAI Agents SDK และ Agent Framework ที่รองรับ |
| ขอบเขตของเอเจนต์ที่กำหนดด้วยตนเอง | การเรียกใช้เอเจนต์ การดำเนินการเครื่องมือ การอนุมาน และการวัดและส่งข้อมูลทางไกลผลลัพธ์ที่รองรับ |
| ตัวส่งออกและตัวประมวลผล | Azure Monitor, Microsoft Agent 365, OTLP, เอาต์พุตคอนโซล, โปรเซสเซอร์สแปน, ตัวประมวลผลบันทึก, และตัวอ่านเมตริก |
ขอบเขตของการวัดค่าระบบ
| Language | การวัดค่าระบบสำหรับการใช้งานทั่วไป | เอเจนต์ทั่วไปและการวัดค่าระบบ AI สร้างสรรค์ |
|---|---|---|
| Python | ทรัพยากร OpenTelemetry, โปรเซสเซอร์, ตัวอ่าน, การบันทึก, เมตริก และการติดตาม | Semantic Kernel, OpenAI Agents SDK, Agent Framework, LangChain, Microsoft Agent 365 baggage และขอบเขต Microsoft Agent 365 |
| Node.js | HTTP, Azure SDK, ฟังก์ชัน Azure, MongoDB, MySQL, PostgreSQL, Redis, Bunyan และ Winston | OpenAI Agents SDK, LangChain, Microsoft Agent 365 baggage และขอบเขต Microsoft Agent 365 |
| .NET | ASP.NET Core, HttpClient, SQL Client, Azure SDK, การตรวจหาทรัพยากร, เมตริก และบันทึก | Semantic Kernel, OpenAI และ Azure OpenAI, Agent Framework, Microsoft Agent 365 baggage และขอบเขต Microsoft Agent 365 |
การวัดค่าระบบอัตโนมัติจะรอรับสัญญาณการวัดและส่งข้อมูลทางไกลที่ปล่อยออกมาจากไลบรารีและเฟรมเวิร์กที่รองรับ การวัดค่าระบบแบบดำเนินการด้วยตนเองจะใช้เมื่อแอปพลิเคชันจำเป็นต้องอธิบายการดำเนินการเฉพาะของเอเจนต์ เช่น การเรียกใช้ การดำเนินการของเครื่องมือ การอนุมาน หรือเอาต์พุตแบบอะซิงโครนัส
เพิ่มแหล่งที่มา มิเตอร์ โปรเซสเซอร์ หรือตัวอ่าน OpenTelemetry แบบกำหนดเองเมื่อแอปพลิเคชันของคุณปล่อยข้อมูลการวัดและส่งข้อมูลทางไกลที่ไม่ครอบคลุมโดยการวัดค่าระบบในตัว
สำคัญ
การวัดค่าระบบอัตโนมัติจะเพิ่มเฉพาะแอตทริบิวต์มาตรฐานของ OpenTelemetry เท่านั้น ไม่ได้รวมแอตทริบิวต์ทั้งหมดที่ Agent 365 ต้องการ คุณต้องเพิ่มแอตทริบิวต์เฉพาะของ Microsoft ผ่าน BaggageBuilder หากต้องการดูว่าแอตทริบิวต์ใดจําเป็น โปรดดู แอตทริบิวต์การตรวจสอบความถูกต้องของที่เก็บ
ไลบรารีการวัดค่าระบบในตัว
การวัดค่าระบบอัตโนมัติจะรอรับข้อมูลการวัดและส่งข้อมูลทางไกลที่ถูกส่งออกมาจากเฟรมเวิร์กที่รองรับ และส่งต่อข้อมูลเหล่านั้นผ่านไปยังไปป์ไลน์ OpenTelemetry ของ Distro สำหรับสถานการณ์ของเอเจนต์ ให้ตั้งค่า baggage เช่น รหัสผู้เช่าและรหัสเอเจนต์ก่อนที่เฟรมเวิร์กที่ถูกวัดจะสร้างสแปน
| กรอบการทำงาน | Python | Node.js | .NET |
|---|---|---|---|
| Semantic Kernel | ได้รับการสนับสนุน | ไม่สนับสนุน | ได้รับการสนับสนุน |
| OpenAI และ OpenAI Agents SDK | ได้รับการสนับสนุน | รองรับ | ได้รับการสนับสนุน |
| Agent Framework | ได้รับการสนับสนุน | ไม่สนับสนุน | ได้รับการสนับสนุน |
| LangChain | ได้รับการสนับสนุน | ได้รับการสนับสนุน | ไม่อยู่ในรายการ |
Semantic Kernel
from microsoft.opentelemetry import use_microsoft_opentelemetry
def token_resolver(agent_id, tenant_id):
return "your-token"
use_microsoft_opentelemetry(
enable_a365=True,
a365_token_resolver=token_resolver,
instrumentation_options={
"semantic_kernel": {"enabled": True},
},
)
OpenAI
from microsoft.opentelemetry import use_microsoft_opentelemetry
def token_resolver(agent_id, tenant_id):
return "your-token"
use_microsoft_opentelemetry(
enable_a365=True,
a365_token_resolver=token_resolver,
instrumentation_options={
"openai_agents": {"enabled": True},
},
)
Agent Framework
from microsoft.opentelemetry import use_microsoft_opentelemetry
def token_resolver(agent_id, tenant_id):
return "your-token"
use_microsoft_opentelemetry(
enable_a365=True,
a365_token_resolver=token_resolver,
instrumentation_options={
"agent_framework": {"enabled": True},
},
)
LangChain
from microsoft.opentelemetry import use_microsoft_opentelemetry
def token_resolver(agent_id, tenant_id):
return "your-token"
use_microsoft_opentelemetry(
enable_a365=True,
a365_token_resolver=token_resolver,
instrumentation_options={
"langchain": {"enabled": True},
},
)
การวัดค่าระบบแบบกำหนดเอง
ใช้การวัดค่าระบบแบบดำเนินการเองเมื่อการวัดค่าระบบอัตโนมัติไม่ได้อธิบายการทำงานของเอเจนต์ได้ละเอียดเพียงพอ ขอบเขตแบบดำเนินการเองช่วยให้แอปพลิเคชันอธิบายกิจกรรมเอเจนต์ทั่วไปในลักษณะที่สอดคล้องกันในหลายภาษา
| ขอบเขต | ใช้สำหรับ |
|---|---|
InvokeAgentScope |
การเริ่มต้นและการเสร็จสิ้นของการเรียกใช้เอเจนต์ |
ExecuteToolScope |
การเรียกใช้เครื่องมือโดยเอเจนต์ |
InferenceScope |
การอนุมานของโมเดล AI |
OutputScope |
ผลลัพธ์ที่ต้องบันทึกเมื่อขอบเขตต้นทางเสร็จสิ้นแล้ว |
นำค่าคำขอและข้อมูลประจำตัวของเอเจนต์เดียวกันกลับมาใช้ในแต่ละขอบเขตของคำขอ เพื่อให้สามารถเชื่อมโยงข้อมูลการวัดและส่งข้อมูลทางไกลที่เกี่ยวข้องกันได้
การเรียกใช้เอเจนต์
from microsoft.opentelemetry.a365.core import (
AgentDetails,
Channel,
InvokeAgentScope,
InvokeAgentScopeDetails,
Request,
ServiceEndpoint,
)
agent_details = AgentDetails(
agent_id="agent-456",
agent_name="Email Assistant",
agent_description="An AI agent powered by Azure OpenAI",
agentic_user_id="auid-123",
agentic_user_email="agent@contoso.com",
agent_blueprint_id="blueprint-789",
tenant_id="tenant-123",
)
request = Request(
content="Please help me organize my emails",
session_id="session-42",
conversation_id="conv-xyz",
channel=Channel(name="msteams"),
)
scope_details = InvokeAgentScopeDetails(
endpoint=ServiceEndpoint(hostname="myagent.contoso.com", port=443),
)
with InvokeAgentScope.start(
request=request,
scope_details=scope_details,
agent_details=agent_details,
) as scope:
scope.record_input_messages(["Please help me organize my emails"])
# Run the agent invocation.
invoke_scope.record_output_messages(["I found 15 urgent emails."])
การเรียกใช้เครื่องมือ
from microsoft.opentelemetry.a365.core import (
ExecuteToolScope,
ServiceEndpoint,
ToolCallDetails,
ToolType,
)
tool_details = ToolCallDetails(
tool_name="email-search",
arguments={"query": "from:manager@contoso.com"},
tool_call_id="tool-call-456",
description="Search emails by criteria",
tool_type=ToolType.FUNCTION.value,
endpoint=ServiceEndpoint(
hostname="tools.contoso.com",
port=8080,
protocol="https",
),
)
with ExecuteToolScope.start(
request=request,
details=tool_details,
agent_details=agent_details,
) as scope:
result = search_emails(tool_details.arguments)
scope.record_response(result)
การอนุมาน
from microsoft.opentelemetry.a365.core import (
InferenceCallDetails,
InferenceOperationType,
InferenceScope,
)
inference_details = InferenceCallDetails(
operationName=InferenceOperationType.CHAT,
model="gpt-4o-mini",
providerName="azure-openai",
)
with InferenceScope.start(
request=request,
details=inference_details,
agent_details=agent_details,
) as scope:
scope.record_input_messages(["Summarize the following emails for me."])
response = call_llm()
scope.record_output_messages([response.text])
scope.record_input_tokens(response.usage.input_tokens)
scope.record_output_tokens(response.usage.output_tokens)
scope.record_finish_reasons(["stop"])
เอาท์พุท
from microsoft.opentelemetry.a365.core import OutputScope, Response, SpanDetails
# Capture this before exiting the originating InvokeAgentScope context.
parent_context = invoke_scope.get_span_context()
response = Response(
messages=["Here is your organized inbox."],
)
with OutputScope.start(
request=request,
response=response,
agent_details=agent_details,
user_details=None,
span_details=SpanDetails(parent_context=parent_context),
) as scope:
pass
เอกสารประกอบผลิตภัณฑ์ควรระบุข้อกำหนดการตรวจสอบความถูกต้องเฉพาะผลิตภัณฑ์สำหรับขอบเขตเหล่านี้
การตรวจสอบความถูกต้องภายในเครื่อง
การตรวจสอบความถูกต้องภายในเครื่องยืนยันว่าแอปพลิเคชันสร้างการวัดและส่งข้อมูลทางไกลก่อนที่ปลายทางเฉพาะผลิตภัณฑ์จะได้รับการตรวจสอบความถูกต้อง ใช้เอาต์พุตคอนโซลหรือจุดเชื่อมต่อ OTLP ภายในเครื่องเพื่อตรวจสอบว่ามีการสร้างการติดตาม เมตริก และบันทึก
ตรวจสอบความถูกต้องด้วยจุดเชื่อมต่อ OTLP ภายในเครื่อง
กำหนดค่า Distro เพื่อส่งข้อมูลการวัดและส่งข้อมูลทางไกลไปยังตัวรวบรวมภายในเครื่องหรือจุดเชื่อมต่อ OTLP อื่น
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
from microsoft.opentelemetry import use_microsoft_opentelemetry
use_microsoft_opentelemetry()
ตรวจสอบด้วยเอาต์พุตในเครื่อง
ใช้เอาต์พุตในเครื่องเมื่อคุณต้องการยืนยันการวัดค่าระบบก่อนส่งข้อมูลการวัดและส่งข้อมูลทางไกลไปยังปลายทางระยะไกล
export ENABLE_A365_OBSERVABILITY_EXPORTER=false
from microsoft.opentelemetry import use_microsoft_opentelemetry
def token_resolver(agent_id, tenant_id):
return "local-validation-token"
use_microsoft_opentelemetry(
enable_a365=True,
a365_token_resolver=token_resolver,
)
# Run instrumented application code.
ตรวจสอบเอาต์พุตในเครื่องสำหรับสแปนจากแหล่งที่มาที่คาดไว้ เช่น การร้องขอทาง HTTP, การเรียกใช้ OpenAI หรือ Azure OpenAI, ขอบเขตการเรียกใช้เอเจนต์, ขอบเขตการดำเนินการของเครื่องมือ หรือขอบเขตการอนุมาน การตรวจสอบความถูกต้องเฉพาะปลายทางอยู่ในเอกสารประกอบผลิตภัณฑ์สำหรับปลายทางนั้น
ตั้งค่าการรับรองความถูกต้องด้วยตนเอง
เมื่อคุณใช้ตัวส่งออก Agent 365 คุณต้องจัดเตรียมกลไกในการจัดหาโทเค็นการรับรองความถูกต้อง ตัวแก้ไขโทเค็นจะทำงานกับแต่ละชุดงานการส่งออกโดยใช้รหัสเอเจนต์และรหัสผู้เช่าจากบริบท baggage ที่กำลังใช้งานอยู่ ระบบ Distro รองรับวิธีการสองแบบ
เคล็ดลับ
หากคุณกำลังสร้างเอเจนต์ด้วย SDK เอเจนต์สำหรับ Microsoft 365 โปรดดู การตั้งค่าการรับรองความถูกต้องของการเฝ้าสังเกตสำหรับ SDK เอเจนต์ เพื่อดูคำแนะนำทีละขั้นตอนเกี่ยวกับการกำหนดค่าการรับโทเค็น OBO และ S2S สำหรับทั้งเอเจนต์แบบเอเจนต์และเอเจนต์ที่ไม่ใช่แบบเอเจนติก
ตัวแก้ไขโทเค็นด้วยตนเอง
ใช้ตัวแก้ไขโทเค็นด้วยตนเองเมื่อคุณได้รับโทเค็นนอกไปป์ไลน์ Agent Framework เมื่อคุณสร้างแอปที่ไม่ได้ใช้ Agent Framework หรือเมื่อคุณใช้การรับรองความถูกต้องแบบบริการต่อบริการ (S2S) (โฟลว์ข้อมูลรับรองไคลเอ็นต์) เอเจนต์สามารถสร้างโทเค็นได้เอง เช่น โดยใช้ Microsoft Authentication Library (MSAL) หรือวิธีการรับโทเค็นอื่น ๆ แต่ต้องตรวจสอบว่าโทเค็นนั้นมีขอบเขตการเฝ้าสังเกตที่ถูกต้อง (api://9b975845-388f-4429-889e-eab1ef63949c/Agent365.Observability.OtelWrite)
ธนบัตร
สำหรับการรับรองความถูกต้องแบบบริการต่อบริการ (S2S) คุณต้องใช้วิธีการตัวแก้ไขโทเค็นด้วยตนเองนี้ แคชโทเค็นแบบเอเจนติกรองรับเฉพาะโฟลว์การรับรองความถูกต้องในนามของผู้ใช้ (OBO)
ตัวอย่างต่อไปนี้แสดงรูปแบบตัวแก้ไขโทเค็น OBO (ในนามของผู้ใช้) — เอเจนต์จะรับโทเค็นของผู้ใช้ผ่านตัวจัดการการรับรองความถูกต้องแบบเอเจนตฺกและแลกเปลี่ยนโทเค็นนั้นเป็นโทเค็นที่มีขอบเขตสำหรับการเฝ้าสังเกต สำหรับตัวอย่าง S2S (บริการต่อบริการ) และการเปรียบเทียบการรับรองความถูกต้อง OBO กับ S2S โปรดดู การตั้งค่าการรับรองความถูกต้องของการเฝ้าสังเกตสำหรับ SDK เอเจนต์
ตัวแก้ไขต้องเป็นแบบซิงโครนัส รับโทเค็นในตัวจัดการกิจกรรมแบบอะซิงโครนัสของคุณ (หรือผ่าน MSAL) แล้วเก็บไว้ในแคชเพื่อใช้งานกับตัวแก้ไข
from microsoft.opentelemetry import use_microsoft_opentelemetry
from microsoft.opentelemetry.a365.runtime import get_observability_authentication_scope
_cached_token: str | None = None
def my_token_resolver(agent_id: str, tenant_id: str) -> str | None:
return _cached_token
use_microsoft_opentelemetry(enable_a365=True, a365_token_resolver=my_token_resolver)
@AGENT_APP.activity("message", auth_handlers=["AGENTIC"])
async def on_message(context: TurnContext, _state: TurnState):
global _cached_token
_cached_token = await AGENT_APP.auth.exchange_token(
context,
scopes=get_observability_authentication_scope(),
auth_handler_id="AGENTIC",
)
แคชโทเค็นแบบเอเจนติกกับแอป Agent Framework
สำหรับแอป Agent Framework ที่ใช้การรับรองความถูกต้องแบบในนามของผู้ใช้ (OBO) ระบบ distro จะลงทะเบียน IExporterTokenCache<AgenticTokenStruct> ผ่าน DI โดยอัตโนมัติ หากคุณไม่ได้ตั้งค่า TokenResolver แบบกำหนดเอง เอเจนต์ของคุณเรียกใช้ RegisterObservability() ขณะรันไทม์เพื่อระบุข้อมูลรับรอง และแคชจะจัดการการรับโทเค็นและการรีเฟรช
ธนบัตร
วิธีการนี้สนับสนุนเฉพาะโฟลว์การรับรองความถูกต้องในนามของผู้ใช้ (OBO) เท่านั้น สำหรับการรับรองความถูกต้องแบบบริการต่อบริการ (S2S) ให้ใช้ ตัวแก้ไขโทเค็นแบบดำเนินการเอง แทน
from microsoft.opentelemetry import use_microsoft_opentelemetry
from microsoft.opentelemetry.a365.hosting.token_cache_helpers import AgenticTokenCache, AgenticTokenStruct
from microsoft.opentelemetry.a365.runtime import get_observability_authentication_scope
token_cache = AgenticTokenCache()
_cached_tokens: dict[tuple[str, str], str | None] = {}
# Keep the sync resolver side-effect free; refresh the cache in the async request handler.
def sync_token_resolver(agent_id: str, tenant_id: str) -> str | None:
return _cached_tokens.get((agent_id, tenant_id))
use_microsoft_opentelemetry(enable_a365=True, a365_token_resolver=sync_token_resolver)
@AGENT_APP.activity("message", auth_handlers=["AGENTIC"])
async def on_message(context: TurnContext, _state: TurnState):
agent_id = context.activity.recipient.id
tenant_id = context.activity.recipient.tenant_id
token_cache.register_observability(
agent_id=agent_id,
tenant_id=tenant_id,
token_generator=AgenticTokenStruct(
authorization=AGENT_APP.auth,
turn_context=context,
),
observability_scopes=get_observability_authentication_scope(),
)
_cached_tokens[(agent_id, tenant_id)] = await token_cache.get_observability_token(
agent_id, tenant_id,
)
แอตทริบิวต์การตรวจสอบความถูกต้องของที่จัดเก็บ
เพื่อให้การตรวจสอบความถูกต้องของที่จัดเก็บสำเร็จ เอเจนต์ของคุณต้องดำเนินการ InvokeAgentScope, InferenceScope และ ExecuteToolScope แต่ละขอบเขตจะสอดคล้องกับการดำเนินการสแปนในสคีมาแบบมาตรฐาน:
| ขอบเขต SDK | การดำเนินการสแปน | รหัสอ้างอิงสากล |
|---|---|---|
InvokeAgentScope |
invoke_agent |
IA |
ExecuteToolScope |
execute_tool |
ET |
InferenceScope |
chat |
CH |
OutputScope |
output_messages |
OM |
สำหรับรายการแอตทริบิวต์ที่จำเป็นและไม่จำเป็นแบบเต็มสำหรับแต่ละขอบเขต — รวมถึงความหมายของแต่ละแอตทริบิวต์ แนวทางการเลือกค่า และแอตทริบิวต์ใดที่สามารถค้นหาได้ผ่านคุณลักษณะการค้นหาภัยคุกคามขั้นสูงของ Microsoft Defender — โปรดดู ข้อมูลอ้างอิงแอตทริบิวต์สำหรับการเฝ้าสังเกตของ Agent 365 คอลัมน์ ใช้กับ ระบุขอบเขตที่แต่ละแอตทริบิวต์อยู่ และคอลัมน์ จำเป็น แยกแอตทริบิวต์ที่บังคับ (M) ออกจากแอตทริบิวต์ที่ไม่บังคับ (O)
ทดสอบเอเจนต์ของคุณด้วยการเฝ้าสังเกต
หลังจากเปิดใช้งานการเฝ้าสังเกตแล้ว ให้ตรวจสอบว่ามีการบันทึกข้อมูลการวัดและส่งข้อมูลทางไกล:
- ไปที่
https://admin.cloud.microsoft/#/agents/all - เลือกเอเจนต์ของคุณ แล้วเลือก กิจกรรม
- ตรวจสอบว่าเซสชันและการเรียกใช้เครื่องมือปรากฏขึ้น
แอปพลิเคชันตัวอย่างและการกำหนดค่าขั้นสูง
สำหรับตัวอย่างการใช้งานและตัวเลือกการกำหนดค่าขั้นสูงสามารถดูได้ที่ที่เก็บ GitHub สำหรับแต่ละภาษา:
กำลังแก้ไขปัญหา
ส่วนนี้อธิบายปัญหาทั่วไปที่เกิดขึ้นเมื่อมีการนำไปใช้และใช้งาน Microsoft OpenTelemetry Distro กับ Agent 365
| ปัญหา | คำอธิบาย |
|---|---|
| ข้อมูลการเฝ้าสังเกตไม่ปรากฏขึ้น | ข้อมูลการวัดและส่งข้อมูลทางไกลไม่แสดงผลเนื่องจากยังไม่ได้เปิดใช้งานการส่งออก Agent 365 การตั้งค่ายังไม่สมบูรณ์ หรือการรับโทเค็นล้มเหลว |
| ไม่มีรหัสผู้เช่าหรือรหัสเอเจนต์ -สแปนถูกข้าม | สแปนจะถูกกรองออกก่อนส่งออกเมื่อไม่มีแอตทริบิวต์ข้อมูลประจำตัวของผู้เช่าหรือเอเจนต์ที่จำเป็น |
| การแก้ไขโทเค็นล้มเหลว - ข้ามการส่งออกหรือไม่ได้รับอนุญาต | การส่งออกจะถูกข้ามหรือปฏิเสธเมื่อตัวแก้ไขโทเค็นไม่ส่งคืนโทเค็นหรือเกิดข้อผิดพลาดระหว่างการรับโทเค็น |
| HTTP 401 ไม่ได้รับอนุญาต | คำขอไปถึงบริการ แต่การรับรองความถูกต้องล้มเหลวเนื่องจากโทเค็นไม่ถูกต้อง หมดอายุ หรือสำหรับกลุ่มเป้าหมายที่ไม่ถูกต้อง |
| HTTP 403 ไม่อนุญาต | การอนุญาตล้มเหลวเนื่องจากไม่มีการให้สิทธิการใช้งานของผู้เช่าหรือไม่มีสิทธิในการเขียนข้อมูลการเฝ้าสังเกต |
| HTTP 403 ไม่อนุญาต - รหัสเอเจนต์ไม่ตรงกัน | บริการจะปฏิเสธการส่งออกเมื่อรหัสเอเจนต์ในคำขอไม่ตรงกับข้อมูลประจำตัวของเอเจนต์ที่ได้รับอนุญาตจากโทเค็น |
| ข้อผิดพลาด HTTP 429 หรือ 5xx – ข้อผิดพลาดชั่วคราว | การควบคุมปริมาณใช้ชั่วคราวหรือความไม่เสถียรของระบบส่วนหลังขัดจังหวะการส่งออก และอาจต้องลองใหม่หรือปรับแต่งการส่งออกเป็นชุดงาน |
| หมดเวลาส่งออก | การดำเนินการส่งออกเกินเวลาที่กำหนดเนื่องจากความล่าช้าในเครือข่ายหรือการตอบสนองของจุดเชื่อมต่อ |
| การส่งออกสำเร็จแต่ข้อมูลการวัดและส่งข้อมูลทางไกลไม่ปรากฏใน Defender หรือ Purview | การนําเข้าข้อมูลสําเร็จ แต่การมองเห็นล่าช้าหรือถูกบล็อกโดยข้อกําหนดเบื้องต้นและข้อกําหนดของสคีมาขั้นปลาย |
เคล็ดลับ
คู่มือการแก้ไขปัญหา Agent 365 ประกอบด้วยคำแนะนำการแก้ไขปัญหาระดับสูง แนวทางปฏิบัติที่ดีที่สุด และลิงก์ไปยังเนื้อหาการแก้ไขปัญหาสำหรับแต่ละส่วนของวงจรการพัฒนา Agent 365
ข้อมูลการเฝ้าสังเกตไม่ปรากฏขึ้น
อาการ:
- เอเจนต์กำลังทำงาน
- ไม่มีข้อมูลการวัดและส่งข้อมูลทางไกลในศูนย์การจัดการ
- ไม่เห็นกิจกรรมของเอเจนต์
สาเหตุหลัก:
- ไม่ได้เปิดใช้งานการส่งออก Agent 365
- ข้อผิดพลาดในการกำหนดค่า
- ปัญหาเกี่ยวกับตัวแก้ไขโทเค็น
การแก้ไขปัญหา: ลองทําตามขั้นตอนต่อไปนี้เพื่อแก้ไขปัญหา:
ตรวจสอบว่าเปิดใช้งานการส่งออก Agent 365
คุณต้องเปิดใช้งานตัวส่งออก Agent 365 ด้วยตนเอง หากคุณไม่ได้ตั้งค่า distro อาจเลือกใช้ตัวส่งออกคอนโซลหรือไม่ส่งออกข้อมูลใด ๆ เปิดใช้งานในโค้ด:
from microsoft.opentelemetry import use_microsoft_opentelemetry use_microsoft_opentelemetry( enable_a365=True, a365_enable_observability_exporter=True, a365_token_resolver=my_token_resolver, )หรือตั้งค่าตัวแปรสภาพแวดล้อม:
export ENABLE_A365_OBSERVABILITY_EXPORTER=trueธนบัตร
ENABLE_A365_OBSERVABILITY_EXPORTERเป็นตัวสลับสำรองที่จะมีผลเฉพาะเมื่อenable_a365=Trueถูกตั้งค่าในโค้ด คุณสามารถควบคุมได้ผ่านa365_enable_observability_exporterkwarg
ตรวจสอบการกําหนดค่าตัวแก้ไขโทเค็น
ตัวส่งออกต้องการตัวแก้ไขโทเค็นที่ถูกต้องซึ่งคืนค่าโทเค็นแบบแบเรอร์สำหรับแต่ละคำขอการส่งออก หากตัวแก้ไขโทเค็นขาดหายไปหรือส่งคืน
nullการส่งออกจะถูกข้ามไปอย่างเงียบๆเปิดใช้งานการส่งออกคอนโซลและตรวจสอบการวัดและส่งข้อมูลทางไกลในเครื่อง
เพิ่มตัวส่งออกคอนโซลเพื่อยืนยันว่าข้อมูลการวัดและส่งข้อมูลทางไกลถูกสร้างขึ้นก่อนที่จะไปถึงจุดเชื่อมต่อ Agent 365:
เปิดใช้งานการบันทึกรายละเอียด
ตรวจสอบบันทึกเพื่อหาข้อผิดพลาดในการส่งออก
ใช้คำสั่ง
az webapp log tailเพื่อค้นหาข้อผิดพลาดที่เกี่ยวข้องกับการเฝ้าสังเกตในบันทึกaz webapp log tail --name <your-app-name> --resource-group <your-resource-group> | Select-String "observability"
ไม่มีรหัสผู้เช่าหรือรหัสเอเจนต์ — ข้ามสแปน
อาการ: ระบบจะลดสแปนอย่างเงียบ ๆ และไม่ส่งออก บางแพลตฟอร์มบันทึกจำนวนสแปนที่ข้ามหรือมีข้อความ เช่น No spans with tenant/agent identity found แพลตฟอร์มอื่น ๆ ละทิ้งสแปนโดยไม่บันทึกไว้
วิธีการแก้ไขปัญหา:
- ก่อนการส่งออก distro จะแบ่งสแปนตามรหัสผู้เช่าและรหัสเอเจนต์ สแปนที่ไม่มีรหัสผู้เช่าหรือรหัสเอเจนต์จะถูกละทิ้งและจะไม่ถูกส่งไปยังบริการ
- ตรวจสอบว่า
BaggageBuilderตั้งค่าด้วยรหัสผู้เช่าและรหัสเอเจนต์ก่อนที่จะสร้างสแปน ค่าดังกล่าวจะถูกส่งผ่านบริบท OpenTelemetry และแนบกับทุกสแปนที่สร้างขึ้นภายในขอบเขต baggage สำหรับ API เฉพาะแพลตฟอร์ม ดู แอตทริบิวต์ baggage - หากคุณกําลังใช้มิดเดิลแวร์ baggage หรือเปลี่ยนตัวช่วยบริบทจากแพคเกจการผนวกรวมโฮสติ้ง ให้ยืนยันว่ากิจกรรม
TurnContextมีผู้รับที่ถูกต้องพร้อมข้อมูลประจําตัวของเอเจนต์
ข้อผิดพลาดในการแก้ไขโทเค็น — การส่งออกถูกข้ามหรือไม่ได้รับอนุญาต
อาการ: ตัวแก้ไขโทเค็นส่งคืน null หรือเกิดข้อผิดพลาด ทั้งนี้ขึ้นอยู่กับแพลตฟอร์ม การส่งออกจะถูกข้ามไปหรือเกิดข้อผิดพลาดที่มี HTTP 401
วิธีการแก้ไขปัญหา:
- ตัวแก้ไขโทเค็นเป็นสิ่งจำเป็น หากไม่มี ตัวส่งออกจะแสดงข้อผิดพลาดเมื่อเริ่มต้นระบบ ตรวจสอบว่ามีตัวแก้ไขโทเค็นและส่งคืนโทเค็นแบบแบเรอร์ที่ถูกต้อง
- ตรวจสอบให้แน่ใจว่ารหัสผู้เช่าและรหัสเอเจนต์ที่ถูกต้องถูกส่งผ่านไปยัง
BaggageBuilderเนื่องจากค่าเหล่านี้จะถูกส่งต่อไปยังตัวแก้ไขโทเค็น - สำหรับเอเจนต์ที่โฮสต์บน Azure ให้ตรวจสอบว่า Managed Identity มีสิทธิ์ API ที่จำเป็นสำหรับขอบเขตการเฝ้าสังเกต
- สำหรับแอป .NET ที่ใช้แพคเกจโฮสติ้งของ Agent Framework การแลกเปลี่ยนโทเค็นจะได้รับการจัดการโดยอัตโนมัติผ่าน DI หากไม่มีโทเค็น ให้ยืนยันว่า
Microsoft.Agents.A365.Observability.Hostingได้รับการติดตั้งและลงทะเบียนแล้ว
HTTP 401 ไม่ได้รับอนุญาต
อาการ: การส่งออกล้มเหลวด้วย HTTP 401 ตัวส่งออกไม่ลองส่งออกซ้ำเมื่อเกิดข้อผิดพลาดนี้
วิธีการแก้ไขปัญหา:
- ตรวจสอบว่ากลุ่มเป้าหมายของโทเค็นตรงกับขอบเขตจุดเชื่อมต่อการเฝ้าสังเกต
- ตรวจสอบว่าตัวแก้ไขโทเค็นไม่ได้ส่งคืนโทเค็นของผู้ใช้ที่ได้รับมอบสิทธิ์ โทเค็นสำหรับกลุ่มเป้าหมายที่ไม่ถูกต้อง หรือโทเค็นที่หมดอายุ
HTTP 403 ไม่อนุญาต
อาการ: การส่งออกล้มเหลวด้วย HTTP 403 ตัวส่งออกไม่ลองส่งออกซ้ำเมื่อเกิดข้อผิดพลาดนี้
สาเหตุหลัก: ข้อผิดพลาด HTTP 403 อาจมีสาเหตุที่แตกต่างกัน ตรวจสอบแนวทางแก้ไขต่อไปนี้ตามลำดับ
วิธีการแก้ไขปัญหา:
ไม่มีสิทธิการใช้งาน — ตรวจสอบว่าผู้เช่าของคุณมีสิทธิการใช้งานอย่างใดอย่างหนึ่งต่อไปนี้กำหนดไว้ใน ศูนย์การจัดการ Microsoft 365:
- ทดสอบ – Microsoft 365 E7
- Microsoft 365 E7
- Microsoft Agent 365 Frontier
ไม่มีสิทธิการใช้งาน
Agent365.Observability.OtelWrite— ให้สิทธิ์กับข้อมูลประจําตัวของคุณ (ข้อมูลประจําตัวที่มีการจัดการหรือการลงทะเบียนแอป) หากไม่มี การส่งออกข้อมูลการวัดและส่งข้อมูลทางไกลจะล้มเหลวด้วย HTTP 403
ให้สิทธิ์
ใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้:
Agent 365 CLI
ต้องใช้บัญชีผู้ดูแลระบบส่วนกลาง; เรียกใช้จากไดเรกทอรีโครงการเอเจนต์ที่มี
a365.config.jsonหรือใช้--agent-namea365 setup permissions botหรือโดยไม่มีไฟล์กำหนดค่า:
a365 setup permissions bot --agent-name "<agent-name>"พอร์ทัล Entra
ไม่จำเป็นต้องใช้ไฟล์กำหนดค่า; ต้องมีสิทธิ์การเข้าถึงของผู้ดูแลระบบส่วนกลางสำหรับการลงทะเบียนแอปในแบบพิมพ์เขียว
- ไปที่ พอร์ทัล Entra>การลงทะเบียนแอป> เลือกแอปแบบพิมพ์เขียวของคุณ
- ไปที่ สิทธิ์ API>เพิ่มสิทธิ์>API ที่องค์กรของฉันใช้> ให้ค้นหา
9b975845-388f-4429-889e-eab1ef63949c - เลือก สิทธิ์ที่ได้รับมอบหมาย> เลือก
Agent365.Observability.OtelWrite>เพิ่มสิทธิ์ - ทําซ้ำขั้นตอนที่ 2-3 คราวนี้เลือก สิทธิ์ของแอปพลิเคชัน> เลือก
Agent365.Observability.OtelWrite>เพิ่มสิทธิ์ - คลิก ให้ความยินยอมของผู้ดูแลระบบ และยืนยัน
ทั้ง
Agent365.Observability.OtelWrite(แบบมอบสิทธิ์) และAgent365.Observability.OtelWrite(แบบแอปพลิเคชัน) แสดงสถานะGranted
HTTP 403 ไม่อนุญาต — รหัสเอเจนต์ไม่ตรงกัน
อาการ: การส่งออกไม่สำเร็จด้วย HTTP 403 และข้อความเซิร์ฟเวอร์ที่คล้ายกัน 403 Forbidden ที่มี agent-ID-mismatch ความล้มเหลวในการเรียกใช้จุดเชื่อมต่อการติดตาม Agent 365
สาเหตุหลัก: ข้อผิดพลาดนี้เกิดขึ้นเมื่อคุณใช้ รหัสไคลเอ็นต์แบบพิมพ์เขียว แทน รหัสไคลเอ็นต์อินสแตนซ์เอเจนต์ เมื่อตั้งค่ารายละเอียดเอเจนต์ รหัสเอเจนต์ใน URL การส่งออกไม่ตรงกับข้อมูลประจำตัวที่ได้รับอนุญาตจากโทเค็น ดังนั้นจุดเชื่อมต่อการติดตามจึงปฏิเสธคำขอ
วิธีการแก้ไขปัญหา:
- ตรวจสอบว่ามีการเพิ่มรหัสผู้เช่าลงในรายการผู้เช่าที่อนุญาตของ Agent 365 หรือไม่
- ตั้งค่ารายละเอียดเอเจนต์ด้วย รหัสไคลเอ็นต์ของอินสแตนซ์เอเจนต์ (ไม่ใช่รหัสไคลเอ็นต์แบบพิมพ์เขียว)
- ตรวจสอบ URL การส่งออกที่สร้างขึ้น – URL นี้จะถูกบันทึกไว้หากคุณเปิดใช้งานตัวบันทึกของคุณ ยืนยันว่ารหัสเอเจนต์ใน URL ตรงกับรหัสไคลเอ็นต์อินสแตนซ์ของเอเจนต์
- หากต้องการเปิดใช้งานการบันทึกการวินิจฉัยสำหรับแต่ละ SDK โปรดดู การตรวจสอบความถูกต้องภายในเครื่อง
ข้อผิดพลาด HTTP 429 หรือ 5xx – ข้อผิดพลาดชั่วคราว
อาการ: การส่งออกล้มเหลวด้วยรหัสสถานะ HTTP ชั่วคราว เช่น 429 หรือ 5xx
วิธีการแก้ไขปัญหา:
- ข้อผิดพลาดเหล่านี้มักเป็นข้อผิดพลาดชั่วคราวและจะได้รับการแก้ไขเอง Python และ JavaScript distro จะลองใหม่โดยอัตโนมัติเมื่อพบรหัสสถานะ HTTP 408, 429 และ 5xx .NET distro จะไม่ลองใหม่โดยอัตโนมัติ
- หากข้อผิดพลาดยังคงอยู่ ให้ตรวจสอบแดชบอร์ดสถานภาพบริการ
- พิจารณาลดความถี่ในการส่งออกโดยการเพิ่มช่วงเวลาที่จัดกำหนดการระหว่างการส่งออกแต่ละชุดงาน หรือเพิ่มขนาดชุดงานสูงสุดที่ส่งออกได้ สำหรับ Python และ JavaScript ให้ใช้พารามิเตอร์
exporterOptionsหรือa365_*ที่เกี่ยวข้องที่ระบุไว้ใน ที่เก็บ GitHub สำหรับ .NET ให้ใช้o.Agent365.Exporter.ScheduledDelayMillisecondsและo.Agent365.Exporter.MaxExportBatchSize
หมดเวลาส่งออก
อาการ: ความพยายามในการส่งออกหมดเวลา
วิธีการแก้ไขปัญหา:
ตรวจสอบการเชื่อมต่อเครือข่ายไปยังจุดเชื่อมต่อการเฝ้าสังเกต
การหมดเวลาเริ่มต้นของการร้องขอทาง HTTP คือ 30 วินาทีในทุกแพลตฟอร์ม หากเกิดการหมดเวลาบ่อยครั้ง ให้เพิ่มค่าการหมดเวลาในตัวเลือกการส่งออกของคุณ:
use_microsoft_opentelemetry( enable_a365=True, a365_token_resolver=my_token_resolver, # No direct timeout kwarg — set via environment variable or exporterOptions if supported )ดู ที่เก็บ Python สําหรับรายการตัวเลือก
a365_*ทั้งหมด
การส่งออกสำเร็จแต่ข้อมูลการวัดและส่งข้อมูลทางไกลไม่ปรากฏใน Defender หรือ Purview
อาการ: บันทึกแสดงการส่งออกสำเร็จ (HTTP 200) แต่ข้อมูลการวัดและส่งข้อมูลทางไกลไม่ปรากฏใน Microsoft Defender หรือ Microsoft Purview
วิธีการแก้ไขปัญหา:
- ตรวจสอบว่าคุณมีคุณสมบัติตรงตามข้อกำหนดเบื้องต้นสำหรับการดูบันทึกที่ส่งออก:
- Microsoft Purview: ต้องเปิดการตรวจสอบสำหรับองค์กรของคุณ ดู เปิดหรือปิดการตรวจสอบ
-
Microsoft Defender: ต้องกำหนดค่าการค้นหาภัยคุกคามขั้นสูงเพื่อเข้าถึงตาราง
CloudAppEventsดู ตาราง CloudAppEvents ในสคีมาการค้นหาภัยคุกคามขั้นสูง
- ข้อมูลการวัดและส่งข้อมูลทางไกลอาจใช้เวลาหลายนาทีในการปรากฏหลังจากส่งออกสำเร็จ โปรดรอก่อนที่จะดำเนินการตรวจสอบเพิ่มเติม
- ตรวจสอบว่าทุกสแปนมีแอตทริบิวต์
microsoft.tenant.idและgen_ai.agent.idที่ถูกต้อง สแปนที่ไม่มีแอตทริบิวต์ข้อมูลประจำตัวจะถูกเซิร์ฟเวอร์ทิ้ง แม้ว่าการส่งออก HTTP จะส่งคืนค่า 200 ก็ตาม
เนื้อหาที่เกี่ยวข้อง
- แนวคิดเกี่ยวกับการเฝ้าสังเกตของ Agent 365 - การไหลของข้อมูล, รูปแบบข้อมูลประจำตัว, การรับรองความถูกต้อง, ขอบเขต และข้อจำกัดที่ใช้กับทุกเส้นทางการผนวกรวมระบบ
- ข้อมูลการอ้างอิงแอตทริบิวต์การเฝ้าสังเกตของ Agent 365 - สคีมาแอตทริบิวต์สแปนแบบมาตรฐานที่ทุกสแปนที่นำเข้าโดย Agent 365 ต้องยึดตาม