私はGoogle Container Engine(gke)のkubernetesの中にいくつかのpythonアプリケーションを複製セットとして実行しています。それらの側面に沿って私はクラスタ内の各ノードでdd-agentを起動するDatadog DaemonSetを作成しました。別名Kubernetes Podsからdogstatsd(datadog)ポッドにアクセス
今、私はそのエージェントdogstatsdをpythonアプリケーションからのメトリックスロギングに使用し、新しいDatadog APMを試してみたいと思います。 私はちょうどddtraceのPythonパッケージをインストールし、文書のようにそれを使用している場合、それは明らかにそれがddagentポッドのポート7777分の8126にアクセスする方法を推測する魔法の方法を持っていない
[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
と私のログをいっぱいに。
アイブ氏は、ポートを公開するサービスを作成してみました:
---
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/scrape: 'true'
labels:
app: datadog-statsd
name: datadog-statsd
spec:
ports:
- name: dogstatsd
port: 8125
targetPort: dogstatsdport
protocol: UDP
- name: ddapm
port: 8126
targetPort: ddtraceport
protocol: TCP
selector:
app: dd-agent
が、私のpythonポッドはまだ例os.environ['DATADOG_STATSD_PORT_8126_TCP_ADDR']
と.._PORT
用できるアクセスしていないようです。 これらは定義されていますが、私はまだ接続のタイムアウトを得ています。私はDD-エージェントポッドに接続し、tcpdumpのを有効にした場合、私はまた、ポート8126上の任意のTRAFICが表示されないなど
DD-エージェントDaemonSetは、このように定義されていますしようとしているときに、そう
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
kubectlはエンドポイントを表示しますか?エンドポイント/ datadog-statsd -nはエンドポイントを表示しますか?デーモンセットがデプロイされているノードと同じエンドポイント数である必要があります。 –
rwehner
です。私はついにそれを理解したと思う。 – svrist