首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在运行码头容器时,我如何覆盖DataDog中的“源代码”?

在运行码头容器时,我如何覆盖DataDog中的“源代码”?
EN

Stack Overflow用户
提问于 2022-06-10 16:07:37
回答 1查看 294关注 0票数 2

我有一个坞-撰写文件,在其中我运行了几个容器,包括DataDog代理。一切正常,除了DataDog在向DataDog发送容器日志时选择的“源”。

例如,如果我使用正式的Nginx映像,因为docker映像名为" Nginx ",因此默认情况下,datadog源被选择为"nginx",使用Nginx DataDog管道来解析日志。

但是,如果我使用的是一个名为"my-account/hello-world“的码头映像,那么DataDog默认选择源为"hello-world”。如果我的图像是受到Nginx的启发,并以"nginx格式“报告日志,我希望能够将DataDog源代码更改为" Nginx ",这样DataDog就可以在默认情况下获取Nginx日志管道。

我怎样才能做到这一点?

我尝试过设置一个DD_SOURCE环境变量,但是没有运气,DataDog仍然选择图像名作为“源”。我也尝试过将源代码设置为标记(DD_TAGS=source:nginx),但是DataDog没有选择它。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-09 13:24:17

我遇到了一个类似的问题,我终于解决了。我认为你也可以根据你的情况调整这个解决方案。

docs声明您应该使用这种格式:

代码语言:javascript
运行
复制
apiVersion: v1
kind: Pod
metadata:
  annotations:
    ad.datadoghq.com/<CONTAINER_IDENTIFIER>.logs: '[<LOG_CONFIG>]'
spec:
  containers:
    - name: '<CONTAINER_IDENTIFIER>'

由于nginx-入口控制器默认为容器名controller,所以我使用它作为<CONTAINER_IDENTIFIER>

代码语言:javascript
运行
复制
apiVersion: v1
kind: Pod
metadata:
  annotations:
    ad.datadoghq.com/controller.logs: '[<LOG_CONFIG>]'
spec:
  containers:
    - name: 'controller'

我的最终工作配置(包括<LOG_CONFIG>和使用Deployment而不是Pod )看起来如下所示:

代码语言:javascript
运行
复制
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    metadata:
      annotations:
        ad.datadoghq.com/controller.logs: |
          [{"service": "controller", "source": "nginx-ingress-controller"}]
    spec:
      containers:
        - name: controller

值得注意的是,如果没有围绕日志配置的数组大括号[],日志就根本不会被摄入。

Datadog现在自动知道如何解析日志(它在前面提到了controller ):

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72577156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档