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

从Docker容器将数据记录到Azure Application Insights,azure,docker,azure-application-insights,azure-container-instances,azure-container-registry,Azure,Docker,Azure Application Insights,Azure Container Instances,Azure Container Registry,我有一个自定义Docker映像,它使用Windows Servercore作为基本映像 我已经在Dockerfile中编写了命令,当从Azure容器注册表中提取docker映像时,它将执行git提取 Git存储库包含Application Insights DLL和powershell脚本。 脚本使用DLL创建遥测对象,并使用Trackevent()将虚拟数据推送到App Insights。我已将此文件设置为DockerFile中的入口点 因此,当我运行实例/执行Docker Pull时,脚本将

我有一个自定义Docker映像,它使用Windows Servercore作为基本映像

我已经在Dockerfile中编写了命令,当从Azure容器注册表中提取docker映像时,它将执行git提取

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

因此,当我运行实例/执行Docker Pull时,脚本将运行。脚本完全运行(我已经在脚本的不同部分编写了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通常只批量发送数据。如果您的脚本在最后一次日志记录后直接关闭,它可能还没有发送此消息。要解决此问题,可以手动刷新。只需在末尾添加:

$client.Flush()


有关完整示例,请参阅。

运行容器是否在完成后立即关闭?如果是这样,您可能需要手动将数据刷新到AI,或者等待一段时间,直到其自动刷新,它在脚本运行后确实被终止。请添加您如何登录到AppInsights$eventprops=@{Name=“Test”}的代码$jsonevent=converttojson$eventprops$TrackEvent($jsonevent,$null)$client是一个遥测对象很高兴听到这个消息