azure - 将 AppCenter 事件重新同步到 AppInsight
问题描述
我有一个 App Center 配置要同步到下面的 Storage 和 App Insight
一切都顺利同步,直到昨天我检查了它已被禁用 20 天同步到 App Insight(直到知道我仍然不知道为什么它被人或其他人禁用),而 Blob 仍在进行。所以我启用了它,我看到 App Center 目前继续导出到 App Insight,但在这 20 天之前没有禁用。
所以现在我必须从 Blob(json 文件)中获取这些备份以导入 App Insight,基本上是因为 App Center 无法重新推送它。
问题是将这些数据推送到 App Insight 的有效方法是什么?
- 收集所有缺失 20 天的 Blob,并通过 REST API 推送到 App Insight。但是到目前为止我还没有找到导入数据的 POST 方法,只有 GET 用于检索查询
- 还收集所有缺少 20 天但通过 App Insight SDK 使用的 Blob。这会有点奇怪,因为它负责在运行时推送跟踪监控数据,而不是向后推送的任务
感谢您阅读我的问题。
解决方案
有一个应用洞察的post api,url是https://dc.services.visualstudio.com/v2/track
。
您可以使用任何带有 post 方法的工具或程序语言向此 url 发送请求,但您需要正确定义数据。
这是一个使用 c# 的示例:
//the url
string appinsights_url = "https://dc.services.visualstudio.com/v2/track";
Uri uri = new Uri(appinsights_url);
//construct the telemetry data
string data1 = "{\"name\":\"AppTraces\",\"time\":\"2020-12-21T02:11:51.9170725Z\",\"iKey\":\"your_key\",\"tags\":{\"ai.application.ver\":\"1.0.0.0\",\"ai.cloud.roleInstance\":\"ss-75821\",\"ai.internal.sdkVersion\":\"il:2.16.0-18277\",\"ai.internal.nodeName\":\"ss-75821.mmmmmmm.com\"},\"data\":{\"baseType\":\"MessageData\",\"baseData\":{\"ver\":2,\"message\":\"a message from post api: Information\",\"severityLevel\":\"Information\",\"properties\":{\"DeveloperMode\":\"true\",\"CategoryName\":\"WorkerService1.Worker\",\"OriginalFormat\":\"a message from post api: Information\"}}}}";
WebClient client = new WebClient();
var result = client.UploadString(appinsights_url, data1);
这里的问题是,在数据正文中,time field
不能比当前时间早 48 小时。无法更改此功能。
如果您想使用sdk(如 using TrackEvent
,TrackTrace
方法)将这些数据发送到应用程序洞察,它实际上也调用了上述 post 方法。但是构建数据体要容易得多。而且,您可以轻松添加一些额外的字段来指定它original date
(因为time field
不能比当前时间早 48 小时)。
推荐阅读
- timescaledb - 如果原始数据丢失,time_bucket_gapfill 返回空结果
- javascript - 如何从函数appscript webapp调用函数
- perl - 如何从 perl 中的文本中提取引用部分?
- c++ - 谁能指导我解决这个 byref 争论类型不匹配错误?
- ios - 如何在 iOS 上的 mailto 正文中插入换行符?
- javascript - 按以任何数组元素开头的属性过滤对象
- reactjs - 在filepond中,哪个事件将使用react js处理上传的文件
- hadoop - 使用安全 MapR 集群设置 oozie 时面临的问题
- azure - azcopy“--put-md5”参数混淆
- node.js - Strapi 开发脚本不适用于 PM2