1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2024-12-14 10:13:10 +02:00
opentelemetry-go/example/otel-collector/k8s/otel-collector.yaml

154 lines
4.1 KiB
YAML
Raw Normal View History

# Copyright The OpenTelemetry Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
2020-05-13 11:10:19 +02:00
apiVersion: v1
kind: ConfigMap
metadata:
name: otel-collector-conf
2020-05-14 11:11:51 +02:00
namespace: observability
2020-05-13 11:10:19 +02:00
labels:
app: opentelemetry
component: otel-collector-conf
data:
otel-collector-config: |
receivers:
# Make sure to add the otlp receiver.
# This will open up the receiver on port 4317
2020-05-14 18:52:38 +02:00
otlp:
protocols:
grpc:
endpoint: "0.0.0.0:4317"
2020-05-13 11:10:19 +02:00
processors:
extensions:
health_check: {}
exporters:
jaeger:
2020-05-14 11:11:51 +02:00
endpoint: "jaeger-collector.observability.svc.cluster.local:14250"
insecure: true
prometheus:
endpoint: 0.0.0.0:8889
namespace: "testapp"
logging:
2020-05-13 11:10:19 +02:00
service:
extensions: [health_check]
pipelines:
2020-05-14 18:18:22 +02:00
traces:
2020-05-13 11:10:19 +02:00
receivers: [otlp]
processors: []
exporters: [jaeger]
metrics:
receivers: [otlp]
processors: []
exporters: [prometheus, logging]
2020-05-13 11:10:19 +02:00
---
apiVersion: v1
kind: Service
metadata:
name: otel-collector
2020-05-14 11:11:51 +02:00
namespace: observability
2020-05-13 11:10:19 +02:00
labels:
2020-05-14 11:11:51 +02:00
app: opentelemetry
2020-05-13 11:10:19 +02:00
component: otel-collector
spec:
ports:
- name: otlp # Default endpoint for otlp receiver.
port: 4317
protocol: TCP
targetPort: 4317
nodePort: 30080
- name: metrics # Default endpoint for metrics.
port: 8889
protocol: TCP
targetPort: 8889
2020-05-13 11:10:19 +02:00
selector:
component: otel-collector
type: NodePort
2020-05-13 11:10:19 +02:00
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: otel-collector
2020-05-14 11:11:51 +02:00
namespace: observability
2020-05-13 11:10:19 +02:00
labels:
app: opentelemetry
component: otel-collector
spec:
selector:
matchLabels:
app: opentelemetry
component: otel-collector
minReadySeconds: 5
progressDeadlineSeconds: 120
replicas: 1 #TODO - adjust this to your own requirements
template:
metadata:
annotations:
prometheus.io/path: "/metrics"
prometheus.io/port: "8889"
2020-05-13 11:10:19 +02:00
prometheus.io/scrape: "true"
labels:
app: opentelemetry
component: otel-collector
spec:
containers:
- command:
- "/otelcol"
- "--config=/conf/otel-collector-config.yaml"
# Memory Ballast size should be max 1/3 to 1/2 of memory.
- "--mem-ballast-size-mib=683"
env:
- name: GOGC
value: "80"
image: otel/opentelemetry-collector:0.6.0
name: otel-collector
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 200m
memory: 400Mi
ports:
- containerPort: 4317 # Default endpoint for otlp receiver.
- containerPort: 8889 # Default endpoint for querying metrics.
volumeMounts:
- name: otel-collector-config-vol
mountPath: /conf
# - name: otel-collector-secrets
# mountPath: /secrets
livenessProbe:
httpGet:
path: /
port: 13133 # Health Check extension default port.
readinessProbe:
httpGet:
path: /
port: 13133 # Health Check extension default port.
2020-05-13 11:10:19 +02:00
volumes:
- configMap:
name: otel-collector-conf
items:
- key: otel-collector-config
path: otel-collector-config.yaml
name: otel-collector-config-vol
# - secret:
# name: otel-collector-secrets
# items:
# - key: cert.pem
# path: cert.pem
# - key: key.pem
# path: key.pem