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



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

我在Dockerfile中编写了命令,当我的docker映像从Azure Container Registry 中提取时,它将执行git pull

Git存储库包含Application Insights DLL和powershell脚本。脚本使用DLL创建Telemetry对象,并使用Trackevent((将Dummy Data推送到App Insights。我已经在DockerFile中将此文件设置为Entrypoint。

因此,当我运行实例/执行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

ApplicationInsights通常只批量发送数据。如果您的脚本在上次日志记录后直接关闭,它可能还没有发送此消息。若要解决此问题,可以手动冲洗。只需在末尾添加:

$client.Flush()

有关完整示例,请参见此处。

最新更新