feat: add OTel Collector, Tempo, Traefik OTLP tracing
This commit is contained in:
parent
34e358ebcc
commit
14f0e7c43c
27
argocd/apps/otel-collector.yaml
Normal file
27
argocd/apps/otel-collector.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: otel-collector
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
sources:
|
||||
- repoURL: https://open-telemetry.github.io/opentelemetry-helm-charts
|
||||
chart: opentelemetry-collector
|
||||
targetRevision: "0.147.1"
|
||||
helm:
|
||||
releaseName: otel-collector
|
||||
valueFiles:
|
||||
- $values/values/otel-collector.yaml
|
||||
- repoURL: https://gitea.nik4nao.com/nik/homelab.git
|
||||
targetRevision: HEAD
|
||||
ref: values
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: monitoring
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=false
|
||||
27
argocd/apps/tempo.yaml
Normal file
27
argocd/apps/tempo.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: tempo
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
sources:
|
||||
- repoURL: https://grafana.github.io/helm-charts
|
||||
chart: tempo
|
||||
targetRevision: "1.24.4"
|
||||
helm:
|
||||
releaseName: tempo
|
||||
valueFiles:
|
||||
- $values/values/tempo.yaml
|
||||
- repoURL: https://gitea.nik4nao.com/nik/homelab.git
|
||||
targetRevision: HEAD
|
||||
ref: values
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: monitoring
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=false
|
||||
27
manifests/monitoring/tempo-datasource.yaml
Normal file
27
manifests/monitoring/tempo-datasource.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: grafana-tempo-datasource
|
||||
namespace: monitoring
|
||||
labels:
|
||||
grafana_datasource: "1"
|
||||
data:
|
||||
tempo-datasource.yaml: |
|
||||
apiVersion: 1
|
||||
datasources:
|
||||
- name: Tempo
|
||||
type: tempo
|
||||
access: proxy
|
||||
url: http://tempo.monitoring.svc.cluster.local:3200
|
||||
isDefault: false
|
||||
jsonData:
|
||||
tracesToLogsV2:
|
||||
datasourceUid: loki
|
||||
spanStartTimeShift: '-1m'
|
||||
spanEndTimeShift: '1m'
|
||||
serviceMap:
|
||||
datasourceUid: prometheus
|
||||
nodeGraph:
|
||||
enabled: true
|
||||
search:
|
||||
hide: false
|
||||
@ -53,6 +53,7 @@ grafana:
|
||||
|
||||
prometheus:
|
||||
prometheusSpec:
|
||||
enableRemoteWriteReceiver: true
|
||||
retention: 15d
|
||||
storageSpec:
|
||||
volumeClaimTemplate:
|
||||
|
||||
61
values/otel-collector.yaml
Normal file
61
values/otel-collector.yaml
Normal file
@ -0,0 +1,61 @@
|
||||
# yaml-language-server: $schema=false
|
||||
mode: deployment
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
config:
|
||||
receivers:
|
||||
otlp:
|
||||
protocols:
|
||||
grpc:
|
||||
endpoint: 0.0.0.0:4317
|
||||
http:
|
||||
endpoint: 0.0.0.0:4318
|
||||
|
||||
processors:
|
||||
memory_limiter:
|
||||
limit_mib: 200
|
||||
check_interval: 1s
|
||||
batch:
|
||||
timeout: 1s
|
||||
send_batch_size: 1024
|
||||
|
||||
exporters:
|
||||
otlp/tempo:
|
||||
endpoint: tempo.monitoring.svc.cluster.local:4317
|
||||
tls:
|
||||
insecure: true
|
||||
prometheusremotewrite:
|
||||
endpoint: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090/api/v1/write
|
||||
tls:
|
||||
insecure_skip_verify: true
|
||||
|
||||
service:
|
||||
pipelines:
|
||||
traces:
|
||||
receivers: [otlp]
|
||||
processors: [memory_limiter, batch]
|
||||
exporters: [otlp/tempo]
|
||||
metrics:
|
||||
receivers: [otlp]
|
||||
processors: [memory_limiter, batch]
|
||||
exporters: [prometheusremotewrite]
|
||||
|
||||
ports:
|
||||
otlp:
|
||||
enabled: true
|
||||
containerPort: 4317
|
||||
servicePort: 4317
|
||||
protocol: TCP
|
||||
otlp-http:
|
||||
enabled: true
|
||||
containerPort: 4318
|
||||
servicePort: 4318
|
||||
protocol: TCP
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: 256Mi
|
||||
requests:
|
||||
memory: 128Mi
|
||||
cpu: 50m
|
||||
19
values/tempo.yaml
Normal file
19
values/tempo.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
tempo:
|
||||
storage:
|
||||
trace:
|
||||
backend: local
|
||||
local:
|
||||
path: /var/tempo/traces
|
||||
retention: 72h
|
||||
|
||||
persistence:
|
||||
enabled: true
|
||||
storageClassName: local-path
|
||||
size: 10Gi
|
||||
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
namespace: monitoring
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
@ -40,6 +40,10 @@ additionalArguments:
|
||||
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
|
||||
- "--certificatesresolvers.letsencrypt.acme.email=nik.afiq98@ymail.com"
|
||||
- "--certificatesresolvers.letsencrypt.acme.storage=/data/traefik/acme.json"
|
||||
- "--tracing.otlp=true"
|
||||
- "--tracing.otlp.grpc=true"
|
||||
- "--tracing.otlp.grpc.endpoint=otel-collector.monitoring.svc.cluster.local:4317"
|
||||
- "--tracing.otlp.grpc.insecure=true"
|
||||
|
||||
providers:
|
||||
kubernetesCRD:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user