首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为新的AppInsights查询生成url?

如何为新的AppInsights查询生成url?
EN

Stack Overflow用户
提问于 2022-02-15 15:53:06
回答 2查看 252关注 0票数 1

我有一个产生AppInsights遥测的过程。我想证明一个链接到AppInsights中的查询。但是,每次都不是相同的查询--参数会发生变化。我知道我可以共享到现有查询的链接,但是如何生成到新查询的链接呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-17 13:58:52

在您的应用程序洞察查询编辑器中,我们有一个名为复制链接的查询选项。在此链接中,我们有以下详细信息:

此操作生成的URL格式如下:

TENANT_ID/blade/Microsoft_Azure_Monitoring_Logs/LogsBlade/resourceId/%2Fsubscriptions%2F SUBSCRIPTION_ID RESOURCEGROUP%2Fproviders%2Fmicrosoft.insights%2Fcomponents%2F 应用程序INSIGHTS_INSTANCE_NAME /source/LogsBlade.AnalyticsShareLinkToQuery/q/ 编码的基本64_KQL_QUERY /timespan/TIMESPAN

我在这里用粗体强调了URL的参数。这些参数具有以下值:

TENANT_ID:您的租户ID

SUBSCRIPTION_ID:您的Azure订阅ID,该ID包含Application实例。

RESOURCE_GROUP:您的资源组,其中部署了应用程序洞察实例。

APPINSIGHTS_INSTANCE_NAME:您的应用程序洞察实例名称。

查询文本的ENCODED_KQL_QUERY: Base64编码压缩和Base64编码

TIMESPAN:用于查询的时间筛选器(可选)。

如果查询的字符少于1600字符,还可以将上述URL中的q参数替换为查询参数,并且编码的字符串将只是您的查询纯文本转义(不进行压缩和编码)。

动态网址:很重要

  • 取KQL查询的文本
  • 拉链
  • 在Base64中编码

执行C#查询编码的代码如下:

生成任何您想要的查询,并将其传递到下面的函数中,以获得编码的基64 URL,并且可以将其添加到应用程序洞察力的基本URL中。

代码语言:javascript
复制
    static string Encodedbase64KQLQuery(string query)
    {
        var bytes = System.Text.Encoding.UTF8.GetBytes(query);
        using (MemoryStream memoryStream = new MemoryStream())
        {
            using (GZipStream compressedStream = new GZipStream(memoryStream, CompressionMode.Compress, leaveOpen: true))
            {
                compressedStream.Write(bytes, 0, bytes.Length);
            }
        memoryStream.Seek(0, SeekOrigin.Begin);
        Byte[] bytedata = memoryStream.ToArray();
        string encodedBase64Query = Convert.ToBase64String(bytedata);
        return HttpUtility.UrlEncode(encodedBase64Query);
        }
    }

请访问这个帮了我很多忙的博客

票数 3
EN

Stack Overflow用户

发布于 2022-11-19 00:45:30

感谢来自博客链接的Delliganesh和Stefano。下面是一个简单的JavaScript示例。在调用函数时,请确保替换顶部的所有4个常量值和sessionId。您也可以调整查询,但请记住上面和博客中描述的1600字符限制。

代码语言:javascript
复制
const APP_INSIGHTS_INSTANCE_NAME = "APP_INSIGHTS_INSTANCE_NAME";
const APP_INSIGHTS_RESOURCE_GROUP = "APP_INSIGHTS_RESOURCE_GROUP";
const APP_INSIGHTS_SUBSCRIPTION_ID = "APP_INSIGHTS_SUBSCRIPTION_ID";
const APP_INSIGHTS_TENANT_ID = "APP_INSIGHTS_TENANT_ID";

const getAppInsightsQueryUrl = ({ sessionId }) => {
  const query = `requests | where session_Id == "${sessionId}"`;
  const url = `https://portal.azure.com/#@${APP_INSIGHTS_TENANT_ID}/blade/Microsoft_Azure_Monitoring_Logs/LogsBlade/resourceId/%2Fsubscriptions%2F${APP_INSIGHTS_SUBSCRIPTION_ID}%2FresourceGroups%2F${APP_INSIGHTS_RESOURCE_GROUP}%2Fproviders%2Fmicrosoft.insights%2Fcomponents%2F${APP_INSIGHTS_INSTANCE_NAME}/source/LogsBlade.AnalyticsShareLinkToQuery/query/${encodeURI(
    query
  )}/timespan/TIMESPAN`;
  return url;
};


getAppInsightsQueryUrl({
  sessionId: 'my-session-id',
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71129452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档