我在googlecontainer Engine(gke)上运行大量python应用程序作为kubernetes的副本集。除了它们之外,我还创建了Datadog守护进程,它在集群中的每个节点上启动一个dd代理。在
现在,我想使用代理dogstatsd从python应用程序中记录度量,并尝试新的Datadog APM。 如果我只是安装ddtrace python包并像文档中那样使用它,那么它将填充我的日志
[2017-02-24 14:09:15,199] [5] [ddtrace.writer] [ERROR] cannot send spans: [Errno 110] Connection timed out
[2017-02-24 14:11:23,660] [5] [ddtrace.writer] [ERROR] cannot send spans: [Errno 110] Connection timed out
显然,它没有神奇的方法来猜测如何访问ddagent pods的8126/7777端口。在
我尝试创建一个公开端口的服务:
^{pr2}$但是我的python pod似乎仍然无法访问例如os.environ['DATADOG_STATSD_PORT_8126_TCP_ADDR']
和{
dd代理守护进程的定义如下:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: dd-agent
spec:
template:
metadata:
labels:
app: dd-agent
name: dd-agent
spec:
containers:
- image: datadog/docker-dd-agent:latest
imagePullPolicy: Always
name: dd-agent
ports:
- containerPort: 8125
name: dogstatsdport
protocol: UDP
- containerPort: 8126
name: ddtraceport
protocol: TCP
env:
- name: API_KEY
value: .....
- name: KUBERNETES
value: "yes"
- name: SD_BACKEND
value: docker
- name: DD_APM_ENABLED
value: "true"
volumeMounts:
- name: dockersocket
mountPath: /var/run/docker.sock
- name: procdir
mountPath: /host/proc
readOnly: true
- name: cgroups
mountPath: /host/sys/fs/cgroup
readOnly: true
volumes:
- hostPath:
path: /var/run/docker.sock
name: dockersocket
- hostPath:
path: /proc
name: procdir
- hostPath:
path: /sys/fs/cgroup
name: cgroups
因此,在尝试调试时,我删除了deployment+dameonset和服务并重新创建了它。后来它成功了。。。。在
你看过Discovering Services文档吗?我建议使用DNS进行服务发现,而不是环境变量,因为环境变量要求服务以特定的顺序出现。在
相关问题 更多 >
编程相关推荐