将数据从 Docker 容器记录到 Azure Application Insights

Logging Data to Azure Application Insights from Docker container

我有一个自定义 Docker 图像,它使用 Windows Servercore 作为基础图像..

我在 Dockerfile 中编写了命令,当我的 docker 图像从 Azure 容器注册表中拉取时,它将执行 git 拉取

Git 存储库包含 Application Insights DLL 和 powershell 脚本。 脚本使用 DLL 创建遥测对象,并使用 Trackevent() 将虚拟数据推送到 App Insights。我已将此文件设置为我的 DockerFile.

中的入口点

所以当我 运行 Instance/Perform 拉 Docker 时,脚本 运行s。脚本 运行 完全(我在脚本的不同部分编写了 Write-Host 以确认这一点)但数据未登录到 Azure Application Insights。

当我尝试在本地 运行 脚本时,它会将数据记录到 App Insights。 我在这里遗漏了什么吗?

$eventprops = @{ Name = "Test" };
$jsonevent=ConvertTo-Json $eventprops; 
$client.TrackEvent($jsonevent,$null) 
# $client is a Telemetry object

Application Insights 通常只会批量发送数据。如果您的脚本在最后一次记录后直接关闭,它可能还没有发送出去。要解决,可以手动flush。只需在末尾添加:

$client.Flush()

有关完整示例,请参阅 here