如何在Azure App Service中使用Datadog代理?

问题描述 投票:1回答:2

我在Azure App Service中将Web应用程序作为Docker容器运行。我想将Datadog代理添加到每个容器中,例如,在后台读取日志文件并将它们发布到Datadog日志管理。这是我尝试过的:

1)按照this post中的描述安装Datadog代理作为扩展。此选项似乎不适用于App Service应用程序,仅适用于VM。

2)使用in this post描述的多容器应用程序。但是,我们还没有找到一种简单的方法将其与Azure DevOps release pipelines集成。我想有可能创建一个包装Azure CLI命令的自定义部署任务?

3)通过遵循Datadog Dockerfiles are built的方式将Datadog代理包含到我们的Dockerfiles中。这个过程看起来非常复杂,并为我们的Dockerfile添加了许多额外的依赖项。我们也不想用FROM datadog/agent从Datadog Dockerfile继承我们的Dockerfiles。

我认为这对于Azure + Datadog用户来说必定是一个非常标准的问题。什么是最干净的选择?

azure azure-devops azure-web-sites datadog
2个回答
1
投票

我怀疑Datadog代理将在App Services Web应用程序上运行,因为您无权访问正在运行的主机,它是专为VM设计的。你试过这个https://www.datadoghq.com/blog/azure-monitoring-enhancements/吗?他们说他们支持AppServices


1
投票

来自App Services的日志也可以发送到Blob存储,并通过Azure功能从那里转发。与App Services中的跟踪和自定义指标不同,这不需要运行代理的VM。该功能的文档和代码可在此处获得:

https://github.com/DataDog/datadog-serverless-functions/tree/master/azure/blobs_logs_monitoring


0
投票

要回复您对需要自定义指标的评论,如果代理位于同一位置,这仍然是可能的。安装名为statsdclient的datadog的nuget包之后,您可以将其配置为将自定义指标发送到位于其他位置的代理。示例如下:

using StatsdClient;

var dogstatsdConfig = new StatsdConfig
{
    StatsdServerName = "127.0.0.1", // Optional if DD_AGENT_HOST environment variable set
    StatsdPort = 8125, // Optional; If not present takes the DD_DOGSTATSD_PORT environment variable value, else default is 8125
    Prefix = "myTestApp", // Optional; by default no prefix will be prepended
    ConstantTags = new string[1] { "myTag:myTestAppje" } // Optional
};

StatsdClient.DogStatsd.Configure(dogstatsdConfig);
StatsdClient.DogStatsd.Increment("fakeVisitorCountByTwo", 2); //Custom metric itself

0
投票

我编写了一个应用程序服务扩展,用于发送带有.NET核心的Datadog APM指标,并提供了如何在此设置它的说明:https://github.com/payscale/datadog-app-service-extension

如果您有任何疑问或者这不适用于您的情况,请与我们联系。

© www.soinside.com 2019 - 2024. All rights reserved.