- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我当前的组织正在迁移到 DataDog 以进行应用程序性能监控。我正在使用 docker 将 Python Flask Web 应用程序部署到 Azure 容器注册表。部署到 Azure 后,该应用程序应在 Datadog 门户上列出/可用。
请注意,我刚刚开始学习 Docker 容器。我很有可能完全错了。请多多包涵
遵循的步骤
选项 1:在本地计算机上创建 Docker 容器并推送到 ACR
向 docker 镜像添加了 dd-trace
python 库
在 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
选项 2:将日志转发到 Azure Blob 存储,但过程繁重
选项 3:使用 Serilog,但是,我的组织不想使用第三方日志记录框架,我们有自己的日志记录框架
非常感谢任何帮助,我正在寻找使用选项 1 的解决方案。我浏览了 Microsoft 文章、Datadog 文档,但没有成功。
我设置应用程序注册、管理订阅的读者权限、在 Azure 门户上创建 ClientID 和应用程序 secret 。他们都没有帮助
您能否确认是否有一种方法可以在 Azure 上不安装代理的情况下收集 Datadog 上的 APM 日志。
提前谢谢您。
最佳答案
经过几天的研究并与 datadog 支持团队跟进后,我能够在 datadog 门户上获取 APM 日志。
Below is my
docker-compose.yml
file configuration, I believe it helps someone in future
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
The
Dockerfile
for my python long running application
FROM python:3.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
CMD ["ddtrace-run python", "/app/standalone_api.py"]
请注意,在requirements.txt文件中我列出了ddtrace
包
关于python Flask 应用程序使用 ACR 在 Azure Linux 容器上使用 Datadog 跟踪 APM 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66113635/
场景:我在 ACR(azure 容器注册表)中有 4 个存储库,每个存储库中有多个图像。我想将所有存储库和其中的所有图像移动到不同的 ACR(azure 容器注册表)我所做的:我使用以下命令将 ACR
场景:我在 ACR(azure 容器注册表)中有 4 个存储库,每个存储库中有多个图像。我想将所有存储库和其中的所有图像移动到不同的 ACR(azure 容器注册表)我所做的:我使用以下命令将 ACR
每当我运行 az acr login -n 时,我都会收到以下消息: 来自守护程序的错误响应:获取“https://acrau*****.azurecr.io/v2/”:net/http:WAITIN
我们已经开始将产品从这一庞大的整体中剥离到 Azure 中。产品也可以称为微服务。 我们有一个问题 - 我们应该有一个 Azure 容器注册表 (ACR) 来服务所有不同的产品,还是每个产品都应该有自
我创建了一个仅具有 AcrPull 角色的私有(private)注册表,如下所示: 但是当我建立自己的形象并PUSH时,效果很好! (而不是拒绝我) 我想知道为什么? (因为它只有 AcrPull 而
应用程序使用 docker CLI 构建镜像,然后将镜像推送到 azure 容器注册表。过去使用 python 模块和 docker.sock 在 Kubernetes 上运行良好。但自从集群升级后,
我们有一个在 Azure 云上运行的 ACR,其中有多个 Repos,它最近被迁移。我们面临的挑战是我们希望在 ACR 上应用类似于 Nexus 的存储库访问控制,我们希望与 Azure Active
我有一个服务主体,它具有订阅的所有者访问权限,禁止进行一些网络操作。在同一个订阅中,我有一个资源组,我在其中创建了 ACR。我正在尝试使用我的服务主体登录 acr,但它抛出“访问被拒绝”错误。 由于
我正在尝试执行以下针对根文件夹中的 Dockerfile 的 Azure CLI 命令。 az acr build --registry --image myimage:latest . 我得到一个
我在 ACR 中托管了一些镜像,我想检查 ACR 中部署的镜像(存储库镜像)。 例如,我在“test123”ACR 中有一个“hello-world”图像。我想检查 ACR 图像并读取图像的 json
我正在尝试创建一个容器并将其推送到 Azure 容器注册表。我已经创建了一个容器组和服务原则,但我无法让 docker Push 工作。 > docker login azure --client-i
有一个关于 Azure 需要通过从 AZ 从 azure 容器注册表中提取镜像来部署 azure 容器应用程序的问题 步骤: 1- az login -successful 2- az acr log
我正在我的组织中试用 Bicep 和容器应用程序,我们已经在同一租户内但在不同的订阅中分离出了问题,如下所示: 开发 生产 管理 我希望能够使用 Bicep 脚本(每个订阅都有一个单独的脚本)部署每个
我正在尝试使用 cli 对 Azure 容器注册表进行身份验证。我使用主题名称和颁发者身份验证,并通过服务主体向 azure 进行身份验证。 这就是我登录 Azure 时所做的事情 az login
Azure 容器注册表 (ACR) SKU 之间有什么区别? CLI 将这些列为选项: -sku {Basic,Managed_Basic,Managed_Standard,Managed_Premi
我正在我的组织中试用 Bicep 和容器应用程序,我们已经在同一租户内但在不同的订阅中分离出了问题,如下所示: 开发 生产 管理 我希望能够使用 Bicep 脚本(每个订阅都有一个单独的脚本)部署每个
我正在尝试使用 cli 对 Azure 容器注册表进行身份验证。我使用主题名称和颁发者身份验证,并通过服务主体向 azure 进行身份验证。 这就是我登录 Azure 时所做的事情 az login
Azure 容器注册表 (ACR) SKU 之间有什么区别? CLI 将这些列为选项: -sku {Basic,Managed_Basic,Managed_Standard,Managed_Premi
我正在使用Azure CLI v2.0.62。 我在 Azure 中的单个帐户上有多个订阅 - S1、S2、S3、S4。 我正在执行以下脚本以将动态值插入存储库: az login az acr bu
我正在尝试使用 OCI 注册表 (ACR) 来存储我的 helm 图表。我找到了推送和拉取图表的方法,但我无法以 OCI native 方式登录注册表。 目前我可以通过以下方式登录: az acr l
我是一名优秀的程序员,十分优秀!