Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
[Bu makale bir yayın öncesi belgedir ve değiştirilebilir.]
Azure Uygulaması Insights kullanarak yönetilen bir ortamdan dışa aktarılan Copilot Studio ajan traces'lerini izleyin. İxracat yaptıktan sonra, Azure İzleyici ve Application Insights kullanarak ajan çalıştırmalarını doğrulayın, düğüm ve araç çalıştırmasını izleyin, uyarılar oluşturun ve operasyonel analiz için özel sorgular ve dashboard'lar oluşturun.
Note
- Hem standart demetle hem de GitHub Copilot demetiyle çalışan ajanlar için ortam düzeyinde telemetri mevcuttur.
- Özel önizlemeden sonra, kök ajan çağrıları (
invoke_agent) artıkdependencies, yerinerequestsolarak yayımlanır. Sonuç olarak, eski ajan kök çağrı izleri tabloda hâlâ görünebilirrequests. - Bu önizleme özelliğini en son telemetri stratejisi ve yetenekleriyle değerlendirmek için, Erken Sürüm döngüsü etkinleştirilmiş üretim dışı bir ortamda test yapabilirsiniz.
- Bu özellik yalnızca yönetilen ortamlar için mevcuttur.
- Application Insights'ta yalnızca Copilot Studio'da oluşturulmuş ajanların logları, deklaratif ajanlar hariç tutulur.
- Copilot Studio ajan telemetrisi için yalnızca ortam düzeyinde bir Application Insights stratejisini benimsemek için, organizasyonlar ajan düzeyinde Application Insights telemetrisini devre dışı bırakmayı seçebilirler.
Bu makale, Copilot Studio ajanı izlerinin Azure Uygulaması Insights'a çevresel düzeyde dışa aktarılmasının Power Platform yönetim merkezi aracılığıyla nasıl yapılandırılacağını açıklar.
Important
Bu makale Microsoft Copilot Studio önizleme belgelerini içerir ve değiştirilebilir.
Önizleme özellikleri, üretimde kullanıma yönelik değildir ve sınırlı işlevselliğe sahip olabilir. Bu özellikler, önceden erişebilmeniz ve geri bildirim sağlamanız amacıyla resmi sürümden önce kullanıma sunulur.
Üretime hazır bir aracı oluşturuyorsanız bkz. Microsoft Copilot Studio Overview.
Prerequisites
Veri dışa aktarma bağlantısını kurmadan önce, Veriyi Application Insights'a aktarma önkoşullarını tamamla.
Dışa aktarılanlar
Dışa aktarmayı etkinleştirdiğinizde, Copilot Studio ajan iz telemetrisi, İz odaklı, OpenTelemetri uyumlu bir gözlemlenebilirlik formatında Application Insights'a yazılır; bu format araştırma, gösterge panelleri ve uyarı desteğini destekler.
Copilot Studio ajan olayları, dependencies tablosuna span olarak yazılır. Her dışa aktarılan olay (, , ve ) tek bir span satırıdır (InvokeAgentExecuteToolOutputMessages).itemType = dependency
Span’lerin bir izi nasıl oluşturduğu
Telemetri, operation_Id ve operation_ParentId sütunları aracılığıyla yeniden oluşturulan OpenTelemetry iz ve aralık modelini takip eder:
- Her ajan turu, paylaşılan bir ile tanımlanan kendi
operation_Id; bu, Application Insights’ın bu turu gruplandırmasına ve uçtan uca işlem görünümünde görüntülemesine olanak tanır. -
InvokeAgentspan'i, kendi adımının izindeki kök'tür.ExecuteToolve bağlıOutputMessagesspan’leri onun altında iç içe yer alır; her birioperation_ParentId=InvokeAgentspan’ininiddeğerini taşır. - Bir konuşma birden fazla tur boyunca uzanır, her biri ayrı bir iz olarak yayılır. Tek bir konuşmanın dönüşlerini yeniden bir araya getirmek için
gen_ai.conversation.idgöre gruplayın veya filtreleyin. -
OutputMessagesspan’ler her zaman birInvokeAgentkökü oluşturmaz; bu nedenle (tasarım gereği) karşılık gelen bir üst span olmadan gelebilir ve tek düğümlü, bağımsız bir iz olarak görünebilir.
Dışarı aktarma paketi oluştur
Power Platform yönetim merkezi belgelerindeki Dışa aktarma paketi oluşturma bölümündeki yönergeleri izleyerek, dışa aktarma türü Copilot Studio olarak ayarlanmış bir dışa aktarma paketi oluşturun.
Yapılandırmayı doğrulama
Dışa aktarma yapılandırmasını kaydettikten sonra, ajanla bir test görüşmesi yapın ve telemetrinin Application Insights'a ulaştığını doğrulayın. Yeni konfigürasyonlarda telemetri teslimatı 24 saate kadar sürebilir. Bunu doğrulayın:
- Ajan aralıkları
dependenciestabloda yer alır. - Her dönüşün
InvokeAgent,ExecuteToolveOutputMessagesaralıkları ortak biroperation_Idpaylaşır.
Uygulama İçgörü alanları
Aşağıdaki tablo, tablodaki dependencies alanları ve üç dışa aktarılan ajan olayının her biri için hangi alanların doldurulduğunu gösterir: InvokeAgent, ExecuteTool, ve OutputMessages. Ajan ve işlem anlamları, yerel sütunlarda değil, customDimensions içinde bulunur (gen_ai.* anahtarları; örneğin gen_ai.operation.name).
Tablodaki dependencies alanlar |
InvokeAgent | ExecuteTool | Çıkış İletileri | Örnek değer |
|---|---|---|---|---|
timestamp [UTC] |
✔️ | ✔️ | ✔️ | 6/11/2026, 5:02:13.501 AM |
id |
✔️ | ✔️ | ✔️ | 1111aaa1-aa11-11aa-11a1-a1aaa1111aa1 |
name |
✔️ | ✔️ | ✔️ | InvokeAgent / ExecuteTool / OutputMessages |
resultCode |
✔️ | ✔️ | ✔️ |
OK, ERROR |
type |
✔️ | ✔️ | ✔️ | GenAI |
target |
✔️ | ✔️ | ✔️ | GenAI |
data |
✔️ | ✔️ | ✔️ | invoke_agent / execute_tool / output_messages |
success |
✔️ | ✔️ | ✔️ | True |
duration |
✔️ | ✔️ | ✔️ | 0 |
performanceBucket |
✔️ | ✔️ | ✔️ | <250ms |
itemType |
✔️ | ✔️ | ✔️ | dependency |
customDimensions |
✔️ | ✔️ | ✔️ | Daha fazla bilgi için customDimension özelliklerinde bilgi edinin |
operation_Id |
✔️ | ✔️ | ✔️ |
trace-1111aaa1-aa11-11aa-11a1-a1aaa1111aa1 (turdaki her aralık tarafından paylaşılan) |
operation_ParentId |
✔️ | ✔️ | ✔️ | Dönüşün InvokeAgentid alt span'ler için; InvokeAgent span'i için iz kökü |
client_Type |
✔️ | ✔️ | ✔️ | PC |
client_IP |
✔️ | ✔️ | ✔️ | 0.0.0.0 |
client_City |
✔️ | ✔️ | ✔️ | San Jose |
client_StateOrProvince |
✔️ | ✔️ | ✔️ | California |
client_CountryOrRegion |
✔️ | ✔️ | ✔️ | United States |
appId |
✔️ | ✔️ | ✔️ | 11111a1a-1111-1111-a111-1a1a1a11111a |
appName |
✔️ | ✔️ | ✔️ | - |
iKey |
✔️ | ✔️ | ✔️ | aa111a1a-a1aa-111a-111a-a111a111111a |
sdkVersion |
✔️ | ✔️ | ✔️ | dotnetc:2.23.0-29 |
itemId |
✔️ | ✔️ | ✔️ | a1a1111a-1111-11a1-1111-111111aa1a1a |
itemCount |
✔️ | ✔️ | ✔️ | 1 |
_ResourceId |
✔️ | ✔️ | ✔️ | - |
customDimensions özellikleri
Her span customDimensions JSON'u içerir. Aşağıdaki tablo, her izleme aralığında görünen ortak anahtarları gösterir:
| Key | Örnek değer |
|---|---|
SpanId |
1111aaa1-aa11-11aa-11a1-a1aaa1111aa1 |
error.type |
404 |
Status.code |
1, 2 |
Status.message |
Descriptive failure message |
gen_ai.agent.id |
1aa11a11-1a1a-1a11-1a1a-1111aa1111aa |
gen_ai.agent.name |
MCS Agent |
gen_ai.conversation.id |
aaaaa111-1a1a-1111-1aa1-a111111a11a1 |
gen_ai.request.model |
Sonnet46 |
gen_ai.operation.name |
invoke_agent / execute_tool / output_messages |
env.id |
111a1aa1-a1aa-aaa1-a11a-11a111111111 |
microsoft.tenant.id |
11aaa111-1a11-1a1a-a111-aa1a111a111a |
microsoft.a365.agent.blueprint.id |
1111111a-aa11-1a11-a1a1-a11a1111a1a1 |
microsoft.a365.agent.platform.id |
111a1aa1-…_1a11111a-… |
microsoft.channel.name |
Copilot Studio Test Pane |
resource.provider |
copilot studio |
signal.category |
default |
a365.enabled |
True |
appinsights.enabled |
True |
user.id |
- |
user.email |
My.User@mytenant.onmicrosoft.com |
user.name |
My User |
client.address |
::ffff:00.00.00.00 |
telemetry.sdk.name |
A365ObservabilitySDK |
telemetry.sdk.language |
dotnet |
telemetry.sdk.version |
1.1.9.43597 |
Olaya özgü anahtarlar
Aşağıdaki tablo olaya özgü anahtarları gösterir:
| Key | InvokeAgent | ExecuteTool | Çıkış İletileri | Açıklama |
|---|---|---|---|---|
gen_ai.input.messages |
✔️ | - | - | JSON dizisi {role, parts:[{content, type}]}—kullanıcı isteği |
gen_ai.output.messages |
- | - | ✔️ | JSON dizisi—ajanın cevabı |
gen_ai.tool.name |
- | ✔️ | - | Örneğin, workiqsharepoint:mcp_SharePointRemoteServer |
gen_ai.tool.type |
- | ✔️ | - | Örneğin, MCP - Power Platform Connector |
gen_ai.tool.call.id |
- | ✔️ | - | Araç çağrı tanımlayıcısı |
gen_ai.tool.call.arguments |
- | ✔️ | - | Araca gönderilen JSON yükü |
gen_ai.tool.call.result |
- | ✔️ | - | Araç tarafından geri getirilen JSON yükü |
Mevcut şemayı keşfedin
Bu makalede belgelenen şema zamanla evrilebilir. Sadece daha önce bahsedilen tablolara güvenmek yerine, kendi ortamınızdaki en güncel şemayı incelemek için aşağıdaki soruları kullanın.
Yerel tablo sütunlarını listele
Aşağıdaki sorgu, tablonun dependencies sütun düzeyindeki şemasını döndürür. Sorgular, gösterge panelleri veya uyarılar oluştururken mevcut yerel sütunları doğrulamak için bunu kullanın.
dependencies
| getschema
| project ColumnName, ColumnType
| order by ColumnName asc
customDimensions anahtarlarını (dinamik özellikler) keşfedin
Aşağıdaki sorgu, customDimensions tablosundaki dependencies JSON’u içindeki tüm anahtarları listeler: özellik adı, hangi ajan olaylarında göründüğü (InvokeAgent, ExecuteTool, OutputMessages) ve örnek bir değer. Yerel sütun şemasının aksine, bu özellikler dinamiktir, bu yüzden SDK yeni gen_ai.* veya diğer anahtarlar ekledikçe bu sorgu doğru kalır. Kullanılabilir öznitelikler için güncel ve esas referans kaynağı olarak kullanın.
dependencies
| where timestamp > ago(7d)
| mv-expand Key = bag_keys(customDimensions) to typeof(string)
| summarize Events = make_set(name), SampleValue = take_any(tostring(customDimensions[Key])) by Key
| order by Key asc
Dışa aktarılan telemetri
Ajan etkinliğini sorgulamak ve ajan veya araç çalıştırmasını incelemek için Application Insights Logs'u kullanın. Dışa aktarılan tüm telemetri, dependencies tablosunda span olarak yer alır:
- Her ajan turu bir izdir ve paylaşılan bir
operation_Idile gruplandırılır. -
InvokeAgentspan'i izleme köküdür;ExecuteToolveOutputMessagesspan'leri,operation_ParentIdaracılığıyla onun altında iç içe yer alır. - Aynı konuşmanın birden fazla turunu takip etmek için grup
gen_ai.conversation.idoluştur ve bu ID'yi_alt ajan izlerini de dahil etmek için böl.
Ajan (önizleme) bıçakları
Loglara ek olarak, Application Insights Kusto sorguları yazmadan dışa aktarılan GenAI telemetrisini görselleştiren yerleşik Ajan (önizleme) görünümleri sunar. Copilot Studio, span’lerini dependencies tablosuna yazdıkça bu blade’ler doğrudan bu veriden okur:
-
Ajan Çalıştırmaları:
InvokeAgentspan’lerinden oluşturulan ajan çağrılarını, sürelerini, başarı durumlarını ve her çalıştırmanın ait olduğu konuşmayı listeler. Bazı sınırlamalar geçerlidir; Daha fazla bilgi için Bilinen sınırlamalar ve dikkate alınanlar bölümünde. -
Araçlar: Ajanların hangi araçları aradığını, ne sıklıkla ve nasıl performans gösterdiğini göstermek için
ExecuteToolaralıkları birleştirir. - Modeller: Çalıştırmalar boyunca model kullanımını özetler, çağrılan modelleri ve çağrı desenlerini ortaya çıkarır.
Ajan telemetrisini Application Insights ile analiz edin
Ortamınızı Application Insights'a bağladıktan sonra, kullanıcılar ajanla etkileşimde bulunduğunda, Copilot Studio'daki test sırasında da dahil olmak üzere, ajan telemetri verilerini kaydeder. Kayıtlı telemetri verilerini görmek için Azure'daki Application Insights kaynağınızın Logs bölümüne gidin. Burada, verilerinizi sorgulamak ve analiz etmek için Kusto sorgularını kullanabilirsiniz. Daha fazla bilgi için Örnek Sorgular.
Örnek sorgular
Aşağıdaki Kusto sorgu örnekleri, Application Insights'taki tablodan Copilot Studio ajan konuşmalarını dependencies yeniden oluşturur. Her span her dönüşte bir trace operation_Id paylaştığından, sorgular her trace içinde span’leri kök önce sıralar (InvokeAgent span’i alt span’lerinden önce gelecek şekilde).
Sorgu 1: Belirli bir konuşma kimliği için tam bir iz kaydı döndür
Bu sorgu, bilinen bir konuşmaya ait her span’ı, her kök span kendi alt span’larından önce listelenecek şekilde kronolojik sırayla döndürür.
Konuşma Kimliği yer tutucusunu temsilcinizin konuşma kimliğiyle değiştirin. Özel ajanınızı test ederken aşağıdaki komutu girerek bulabilirsiniz: /debug conversationid.
let LatestConvo = "<Conversation ID>";
dependencies
| where tostring(customDimensions["gen_ai.conversation.id"]) == LatestConvo
| order by operation_Id asc, iff(name == "InvokeAgent", 0, 1) asc, timestamp asc
| project timestamp, name, id, operation_Id,
operation_ParentId, duration, target, type, cloud_RoleName,
resultCode, customDimensions
Soru 2: Belirli bir ajan için en son konuşmayı geri getir
Bu sorgu, belirtilen zaman aralığı içinde isimlendirilmiş bir temsilci için yapılan en güncel konuşmayı bulur. Bu konuşmadaki tüm span’leri aynı kronolojik, kök-öncelikli sırada döndürür. Temsilci adı yer tutucusunu temsilcinizin adıyla değiştirin.
let Window = 7d;
let AgentName = "<Agent name>";
let LatestConvo = toscalar(
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.agent.name"]) == AgentName
| where isnotempty(tostring(customDimensions["gen_ai.conversation.id"]))
| top 1 by timestamp desc
| project tostring(customDimensions["gen_ai.conversation.id"])
);
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.conversation.id"]) == LatestConvo
| order by operation_Id asc, iff(name == "InvokeAgent", 0, 1) asc, timestamp asc
| project timestamp, name, id, operation_Id,
operation_ParentId, duration, target, type, cloud_RoleName,
resultCode, customDimensions
Sorgu 3: Bilinen nesil AI OpenTelemetri özelliklerini sütunlara genişletin
Bu sorgu, 2. sorguyla aynı izi döndürür; ancak bilinen her OpenTelemetry anlamsal kural anahtarını ayrı bir adlandırılmış sütuna da ayrıştırır. Sonuç, araç adı, model, kullanıcı istemi, ajan cevabı ve konuşma kimliği gibi üretken yapay zeka alanlarını doğrudan sıralayabilen, filtreleyip taradığınız düz, açıkça tanımlanmış bir tablo ortaya çıkıyor. Temsilci adı yer tutucusunu temsilcinizin adıyla değiştirin.
let Window = 7d;
let AgentName = "<Agent name>";
let LatestConvo =
toscalar(
dependencies
| where timestamp > ago(Window)
| extend
AgentName_ = tostring(customDimensions["gen_ai.agent.name"]),
ConversationId_ = tostring(customDimensions["gen_ai.conversation.id"])
| where AgentName_ == AgentName
| where isnotempty(ConversationId_)
| summarize arg_max(timestamp, ConversationId_)
| project ConversationId_
);
dependencies
| where timestamp > ago(Window)
| extend
ConversationId = tostring(customDimensions["gen_ai.conversation.id"])
| where ConversationId == LatestConvo
| extend
OperationName = tostring(customDimensions["gen_ai.operation.name"]),
AgentId = tostring(customDimensions["gen_ai.agent.id"]),
AgentName = tostring(customDimensions["gen_ai.agent.name"]),
Model = tostring(customDimensions["gen_ai.request.model"]),
ToolName = tostring(customDimensions["gen_ai.tool.name"]),
ToolType = tostring(customDimensions["gen_ai.tool.type"]),
ToolCallId = tostring(customDimensions["gen_ai.tool.call.id"]),
ToolArguments = tostring(customDimensions["gen_ai.tool.call.arguments"]),
ToolResult = tostring(customDimensions["gen_ai.tool.call.result"]),
EnvironmentId = tostring(customDimensions["env.id"]),
TenantId = tostring(customDimensions["microsoft.tenant.id"]),
ChannelName = tostring(customDimensions["microsoft.channel.name"]),
BlueprintId = tostring(customDimensions["microsoft.a365.agent.blueprint.id"]),
PlatformId = tostring(customDimensions["microsoft.a365.agent.platform.id"]),
ResourceProvider = tostring(customDimensions["resource.provider"]),
SignalCategory = tostring(customDimensions["signal.category"]),
UserId = tostring(customDimensions["user.id"]),
UserName = tostring(customDimensions["user.name"]),
UserEmail = tostring(customDimensions["user.email"])
| extend
InputMessages = parse_json(tostring(customDimensions["gen_ai.input.messages"])),
OutputMessages = parse_json(tostring(customDimensions["gen_ai.output.messages"]))
| extend
UserInput = tostring(InputMessages[0].parts[0].content),
AgentOutput = tostring(OutputMessages[0].parts[0].content)
| order by
operation_Id asc,
iff(name == "InvokeAgent", 0, 1) asc,
timestamp asc
| project
timestamp, name, id, operation_Id, operation_ParentId, OperationName, ConversationId,
AgentId, AgentName, Model, ToolName, ToolType, ToolCallId, ToolArguments, ToolResult,
UserInput, AgentOutput, EnvironmentId, TenantId, ChannelName, BlueprintId, PlatformId,
ResourceProvider, SignalCategory, UserId, UserName, UserEmail, duration, target, type,
cloud_RoleName, resultCode, customDimensions
Sorgu 4: Tüm genAI OpenTelemetri özelliklerini dinamik olarak genişlet
Bu sorgu, sorgu 3 ile aynı span'leri döndürür, ancak her gen_ai.* anahtarı, customDimensions içinden dinamik olarak kendi ga_ önekli sütununa açılır. Projeksiyon dinamik olduğundan, SDK'nın daha sonra yaydığı yeni gen_ai.* öznitelik, sorgu değişmeden otomatik olarak görünür.
Temsilci adı yer tutucusunu temsilcinizin adıyla değiştirin.
let Window = 7d;
let AgentName = "<Agent name>";
let LatestConvo = toscalar(
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.agent.name"]) == AgentName
| where isnotempty(tostring(customDimensions["gen_ai.conversation.id"]))
| top 1 by timestamp desc
| project tostring(customDimensions["gen_ai.conversation.id"])
);
dependencies
| where timestamp > ago(Window)
| where tostring(customDimensions["gen_ai.conversation.id"]) == LatestConvo
| order by operation_Id asc, iff(name == "InvokeAgent", 0, 1) asc, timestamp asc
| mv-apply Key = bag_keys(customDimensions) on (
where Key startswith "gen_ai."
| summarize OTelGenAI = make_bag(bag_pack(tostring(Key), customDimensions[tostring(Key)]))
)
| project timestamp, name, id, operation_Id, operation_ParentId,
duration, target, type, cloud_RoleName, resultCode,
OTelGenAI, customDimensions
| evaluate bag_unpack(OTelGenAI, 'ga_')
Bilinen sınırlamalar ve hususlar
- Bu özellik, kimlik doğrulamasız veya çoklu kiracılı ajan yapılandırma senaryolarını desteklemez. Bu nedenle, Application Insights bunları kaydetmiyor.
- Bu özellik şu anda yalnızca Microsoft kamu bulut ortamlarında mevcuttur.
- Bazı bağlı ajan senaryoları için, izler arasındaki ebeveyn-çocuk ilişkisi doğru şekilde eşlenmemiştir.
- Standart harness ile çalışan ajan izleri için
durationdeğeri mevcut değildir. - Hedef Application Insights kaynağında Yerel kimlik doğrulama özelliğini açtığınızdan emin olun.
- Telemetri ihracatı işlemsel değildir. Geçici hizmet olayları sırasında, küçük miktarda veri kaybı meydana gelebilir.
- Şemayla ilgili içe aktarma güncellemeleri kademeli olarak devreye alındıkça veri tutarsızlıkları ortaya çıkabilir.
- Bu özellik, ,
TopicAction, veTopicEndgibi konu ile ilgili olaylarıTopicStartyakalamaz. - İz ve span kimlikleri şu anda, OpenTelemetry standardındaki 32 karakterli iz kimliği ve 16 karakterli span kimliği onaltılık biçimleri yerine, GUID tabanlı bir gösterim kullanıyor.
- Raporlama ve sorun gidermeyi basitleştirmek için, hem ajan düzeyinde hem de ortam düzeyindeki telemetriyi aynı Application Insights örneğine göndermekten kaçının.
- Telemetri verileri, GitHub Copilot altyapısıyla çalışan ajanlar ile standart altyapıyla çalışan ajanlar arasında farklılık gösterebilir.
- Ortam düzeyindeki Application Insights yapılandırmanızın veri ikamet, gizlilik ve rol tabanlı erişim kontrolü (RBAC) gereksinimlerinize uygun olduğundan emin olun.
- Ajan yanıtları ve araç argümanları dahil büyük günlük içerikleri kısaltılabilir.