mar*_*ark 3 azure-application-insights
我有一个生成 AppInsights 遥测数据的流程。我想证明 AppInsights 中查询的链接。然而,并不是每次都是相同的查询——参数会改变。我知道我可以共享现有查询的链接,但如何生成新查询的链接?
小智 5
在您的Application Insights 查询编辑器中,我们有一个名为“复制链接以查询”的选项选项。在此链接中,我们有以下详细信息:\n
\n此操作生成的 URL 具有以下格式:
\n\nhttps://portal.azure.com/#@ TENANT_ID /blade/Microsoft_Azure_Monitoring_Logs/LogsBlade/resourceId/%2Fsubscriptions%2F SUBSCRIPTION_ID %2FresourceGroups%2F< RESOURCEGROUP %2Fproviders%2Fmicrosoft.insights%2Fcomponents%2F应用程序 INSIGHTS_INSTANCE_NAME /source/LogsBlade。 AnalyticsShareLinkToQuery/q/ ENCODED\nBASE 64_KQL_QUERY /timespan/TIMESPAN
\n
我\xe2\x80\x99在这里用粗体强调了URL的参数。这些参数具有以下值:
\n租户ID:您的租户 ID
\nSUBSCRIPTION_ID:包含 Application Insights 实例的 Azure 订阅 ID。
\n资源组:部署 Application Insights 实例的资源组。
\nAPPINSIGHTS_INSTANCE_NAME:您的 Application Insights 实例名称。
\nENCODED_KQL_QUERY: 查询文本的 Base64 编码、压缩和 URL 编码
\n时间跨度:查询的时间过滤器(可选)。
\n如果您的查询少于1600字符,您还可以将上面 URL 中的q参数替换为查询参数,编码后的字符串将只是您的查询纯文本转义(没有压缩和编码)。
动态 URL\xe2\x80\x99s 很重要:
\n获取 KQL 查询的文本
\n压缩它
\n将其编码为 Base64
\n对KQL 查询进行编码的 C# 代码如下:
\n生成您想要的任何查询并将其传递到以下函数以获取编码的 Base 64 URL,您可以将其添加到应用程序洞察的基本 URL 中。
\n static string Encodedbase64KQLQuery(string query)\n {\n var bytes = System.Text.Encoding.UTF8.GetBytes(query);\n using (MemoryStream memoryStream = new MemoryStream())\n {\n using (GZipStream compressedStream = new GZipStream(memoryStream, CompressionMode.Compress, leaveOpen: true))\n {\n compressedStream.Write(bytes, 0, bytes.Length);\n }\n memoryStream.Seek(0, SeekOrigin.Begin);\n Byte[] bytedata = memoryStream.ToArray();\n string encodedBase64Query = Convert.ToBase64String(bytedata);\n return HttpUtility.UrlEncode(encodedBase64Query);\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n请访问此博客,它对我帮助很大。
\n| 归档时间: |
|
| 查看次数: |
958 次 |
| 最近记录: |