首页 > 解决方案 > 是否有用于连接并从 Java 应用程序获取 Azure AppInsight 服务指标和配额信息的 java sdk 和示例?

问题描述

是否有用于连接并从 Java 应用程序获取Azure AppInsight 服务指标和配额信息的 Java SDK 和示例?

或者是否有任何公开的 REST API 来调用和获取指标,以便从 Java 应用程序集成和测试?

标签: azure-application-insights

解决方案


有一个REST API来获取指标。

首先,您需要获取您的 API 密钥和应用程序 ID,详细信息在此处:导航到 azure 门户 -> 转到您的应用程序洞察 -> 在配置部分下,选择 API 访问 -> 记下应用程序 ID,然后单击创建 API 密钥,截图如下,记得记下关键: 在此处输入图像描述

其次,构造 api url 以获取您需要的指标。此链接中的详细信息。

一个简单的例子是我想获取过去 6 小时内的请求计数,url 如下所示(在最后一步将 your_Application_ID 替换为您自己的 Application_ID):

string URL_requests = "https://api.applicationinsights.io/v1/apps/your_Application_ID/metrics/requests/count?timespan=PT6H";

我对java不熟悉,所以只需使用C#代码(我认为转换为java很容易):

string apikey = "your_api_key";

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("application/json"));

client.DefaultRequestHeaders.Add("x-api-key", apikey);
var req = string.Format(URL_requests);
HttpResponseMessage response = client.GetAsync(req).Result;
if (response.IsSuccessStatusCode)
{
    return response.Content.ReadAsStringAsync().Result; // get the metric you need
}
else
{
    return response.ReasonPhrase;
}

推荐阅读