Gow*_*ham 4 python azure docker datadog
我当前的组织正在迁移到 DataDog 以进行应用程序性能监控。我正在使用 docker 将 Python Flask Web 应用程序部署到 Azure 容器注册表。部署到 Azure 后,应用程序应在 Datadog 门户上列出/可用。
请注意,我刚刚开始学习 Docker 容器。我很有可能完全错了。请多多包涵
遵循的步骤
选项 1:在本地计算机上创建 docker 容器并推送到 ACR
将 python 库添加dd-trace到 docker 镜像
在 docker 文件中添加了 dd-trace run 命令
建立形象
在本地运行容器
出现 OSError:[Errno 99] 无法分配请求的地址
FROM python:3.7
ENV VIRTUAL_ENV=/opt/venv
RUN python -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
ENV DD_API_KEY=apikeyfromdatadoghq
ENV DD_ENV=safhire-dev
ENV DD_LOGS_ENABLED=true
ENV DD_LOGS_INJECTION=true
ENV DD_SERVICE=dev-az1-pythonbusinessservice
ENV DD_TAGS=products:myprojects
ENV DD_TRACE_DEBUG=true
ENV DD_TRACE_ENABLED=true
ENV DOCKER_ENABLE_CI=true
COPY /app /app
COPY requirements.txt /
RUN pip install --no-cache-dir -U pip
RUN pip install --no-cache-dir -r /requirements.txt
CMD ddtrace-run python app/main.py runserver 127.0.0.1:3000
Run Code Online (Sandbox Code Playgroud)
选项 2:将日志转发到 Azure Blob 存储,但过程繁重
选项 3:使用 Serilog,但是,我的组织不想使用第三方日志记录框架,我们有自己的日志记录框架
非常感谢任何帮助,我正在寻找使用选项 1 的解决方案解决方案。我浏览了 Microsoft 文章、Datadog 文档,但没有成功。
我设置了应用程序注册、管理订阅的读者权限、在 Azure 门户上创建了 ClientID 和应用程序机密。他们都没有帮助
您能否确认是否有一种方法可以在 Azure 上不安装代理的情况下收集 Datadog 上的 APM 日志。
先感谢您。
经过几天的研究并与 datadog 支持团队跟进后,我能够在 datadog 门户上获取 APM 日志。
以下是我的
docker-compose.yml文件配置,我相信它对将来的人有帮助
version: "3"
services:
web:
build: web
command: ddtrace-run python standalone_api.py
volumes:
- .:/usr/src/app
depends_on:
datadog-agent:
condition: service_healthy
image: pythonbusinessservice:ICDNew
ports:
- 5000:5000
environment:
- DATADOG_HOST=datadog-agent
- DD_TRACE_AGENT_PORT=8126
- DD_AGENT_HOST=datadog-agent
datadog-agent:
build: datadog
image: gcr.io/datadoghq/agent:latest
ports:
- 8126:8126
environment:
- DD_API_KEY=9e3rfg*****************adf3
- DD_SITE=datadoghq.com
- DD_HOSTNAME=pythonbusinessservice
- DD_TAGS=env:dev
- DD_APM_ENABLED=true
- DD_APM_NON_LOCAL_TRAFFIC=true
- DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true
- DD_SERVICE=pythonbusinessservice
- DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true
- DD_CONTAINER_EXCLUDE="name:datadog-agent"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /proc/:/host/proc/:ro
- /opt/datadog-agent/run:/opt/datadog-agent/run:rw
- /sys/fs/cgroup:/host/sys/fs/cgroup:ro
Run Code Online (Sandbox Code Playgroud)
Dockerfile对于我的 python 长时间运行的应用程序
FROM python:3.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["ddtrace-run python", "/app/standalone_api.py"]
Run Code Online (Sandbox Code Playgroud)
请注意,在requirements.txt 文件中我 ddtrace列出了软件包
| 归档时间: |
|
| 查看次数: |
2301 次 |
| 最近记录: |