add source code and readme
This commit is contained in:
@@ -0,0 +1,315 @@
|
||||
apiVersion: opentelemetry.io/v1beta1
|
||||
kind: OpenTelemetryCollector
|
||||
metadata:
|
||||
name: openobserve-collector-gateway
|
||||
namespace: openobserve-collector
|
||||
spec:
|
||||
config:
|
||||
connectors:
|
||||
servicegraph:
|
||||
dimensions:
|
||||
- http.method
|
||||
latency_histogram_buckets:
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
store:
|
||||
max_items: 10
|
||||
ttl: 1s
|
||||
spanmetrics:
|
||||
aggregation_temporality: AGGREGATION_TEMPORALITY_CUMULATIVE
|
||||
dimensions:
|
||||
- default: GET
|
||||
name: http.method
|
||||
- name: http.status_code
|
||||
dimensions_cache_size: 1000
|
||||
exemplars:
|
||||
enabled: true
|
||||
histogram:
|
||||
explicit:
|
||||
buckets:
|
||||
- 100us
|
||||
- 1ms
|
||||
- 2ms
|
||||
- 6ms
|
||||
- 10ms
|
||||
- 100ms
|
||||
- 250ms
|
||||
- 500ms
|
||||
- 1000ms
|
||||
- 1400ms
|
||||
- 2000ms
|
||||
- 5s
|
||||
- 10s
|
||||
- 30s
|
||||
- 60s
|
||||
- 120s
|
||||
- 300s
|
||||
- 600s
|
||||
metrics_flush_interval: 15s
|
||||
exporters:
|
||||
otlphttp/openobserve:
|
||||
endpoint: http://openobserve-openobserve-standalone.openobserve.svc.cluster.local:5080/api/default/
|
||||
headers:
|
||||
Authorization: ${OPENOBSERVE_AUTH}
|
||||
stream-name: default
|
||||
# HTTP client configuration to match OpenObserve HTTP/1.1
|
||||
compression: gzip
|
||||
max_idle_conns: 50
|
||||
max_idle_conns_per_host: 5
|
||||
idle_conn_timeout: 120s
|
||||
read_buffer_size: 8192
|
||||
write_buffer_size: 8192
|
||||
otlphttp/openobserve_k8s_events:
|
||||
endpoint: http://openobserve-openobserve-standalone.openobserve.svc.cluster.local:5080/api/default/
|
||||
headers:
|
||||
Authorization: ${OPENOBSERVE_AUTH}
|
||||
stream-name: k8s_events
|
||||
# HTTP client configuration to match OpenObserve HTTP/1.1
|
||||
compression: gzip
|
||||
max_idle_conns: 50
|
||||
max_idle_conns_per_host: 5
|
||||
idle_conn_timeout: 120s
|
||||
read_buffer_size: 8192
|
||||
write_buffer_size: 8192
|
||||
processors:
|
||||
batch:
|
||||
send_batch_size: 5000
|
||||
timeout: 30s
|
||||
send_batch_max_size: 6000
|
||||
metadata_keys:
|
||||
- k8s.namespace.name
|
||||
- k8s.pod.name
|
||||
k8sattributes:
|
||||
auth_type: serviceAccount
|
||||
extract:
|
||||
labels:
|
||||
- from: pod
|
||||
key: app.kubernetes.io/name
|
||||
tag_name: service.name
|
||||
- from: pod
|
||||
key: k8s-app
|
||||
tag_name: service.name
|
||||
- from: pod
|
||||
key: app.kubernetes.io/instance
|
||||
tag_name: k8s.app.instance
|
||||
- from: pod
|
||||
key: app.kubernetes.io/version
|
||||
tag_name: service.version
|
||||
- from: pod
|
||||
key: app.kubernetes.io/component
|
||||
tag_name: k8s.app.component
|
||||
metadata:
|
||||
- k8s.namespace.name
|
||||
- k8s.pod.name
|
||||
- k8s.node.name
|
||||
- k8s.deployment.name
|
||||
passthrough: false
|
||||
pod_association:
|
||||
- sources:
|
||||
- from: resource_attribute
|
||||
name: k8s.pod.uid
|
||||
- sources:
|
||||
- from: resource_attribute
|
||||
name: k8s.pod.name
|
||||
- from: resource_attribute
|
||||
name: k8s.namespace.name
|
||||
- from: resource_attribute
|
||||
name: k8s.node.name
|
||||
- sources:
|
||||
- from: resource_attribute
|
||||
name: k8s.pod.ip
|
||||
- sources:
|
||||
- from: resource_attribute
|
||||
name: k8s.pod.name
|
||||
- from: resource_attribute
|
||||
name: k8s.namespace.name
|
||||
- sources:
|
||||
- from: connection
|
||||
resourcedetection:
|
||||
detectors:
|
||||
- env
|
||||
override: true
|
||||
timeout: 2s
|
||||
metricstransform:
|
||||
transforms:
|
||||
- include: k8s.node.allocatable_cpu
|
||||
match_type: strict
|
||||
action: update
|
||||
new_name: machine_cpu_cores
|
||||
- include: k8s.node.allocatable_memory
|
||||
match_type: strict
|
||||
action: update
|
||||
new_name: machine_memory_bytes
|
||||
- include: k8s.node.condition_ready
|
||||
match_type: strict
|
||||
action: update
|
||||
new_name: k8s_node_condition_ready
|
||||
- include: k8s.node.condition_memory_pressure
|
||||
match_type: strict
|
||||
action: update
|
||||
new_name: k8s_node_condition_memory_pressure
|
||||
- include: k8s.node.condition_disk_pressure
|
||||
match_type: strict
|
||||
action: update
|
||||
new_name: k8s_node_condition_disk_pressure
|
||||
- include: k8s.node.condition_pid_pressure
|
||||
match_type: strict
|
||||
action: update
|
||||
new_name: k8s_node_condition_pid_pressure
|
||||
receivers:
|
||||
k8s_cluster:
|
||||
allocatable_types_to_report:
|
||||
- cpu
|
||||
- memory
|
||||
- storage
|
||||
collection_interval: 60s
|
||||
metrics:
|
||||
k8s.container.cpu_limit:
|
||||
enabled: false
|
||||
k8s.container.cpu_request:
|
||||
enabled: false
|
||||
k8s.container.memory_limit:
|
||||
enabled: false
|
||||
k8s.container.memory_request:
|
||||
enabled: false
|
||||
node_conditions_to_report:
|
||||
- Ready
|
||||
- MemoryPressure
|
||||
- DiskPressure
|
||||
- PIDPressure
|
||||
k8s_events:
|
||||
auth_type: serviceAccount
|
||||
k8sobjects:
|
||||
auth_type: serviceAccount
|
||||
objects:
|
||||
- field_selector: status.phase=Running
|
||||
interval: 15m
|
||||
mode: pull
|
||||
name: pods
|
||||
- group: events.k8s.io
|
||||
mode: watch
|
||||
name: events
|
||||
otlp:
|
||||
protocols:
|
||||
grpc: {}
|
||||
http: {}
|
||||
otlp/logs:
|
||||
protocols:
|
||||
http:
|
||||
endpoint: 0.0.0.0:4418
|
||||
prometheus:
|
||||
config:
|
||||
global:
|
||||
scrape_interval: 30s
|
||||
evaluation_interval: 30s
|
||||
external_labels: {}
|
||||
scrape_configs:
|
||||
- job_name: 'nginx-ingress'
|
||||
static_configs:
|
||||
- targets: ['<NODE_1_EXTERNAL_IP>:10254', '<NODE_2_EXTERNAL_IP>:10254', '<NODE_3_EXTERNAL_IP>:10254']
|
||||
metrics_path: /metrics
|
||||
scrape_interval: 30s
|
||||
metric_relabel_configs:
|
||||
- source_labels: [__name__]
|
||||
regex: 'nginx_ingress_controller_.*'
|
||||
action: keep
|
||||
target_allocator:
|
||||
endpoint: http://openobserve-collector-gateway-targetallocator:80
|
||||
interval: 30s
|
||||
collector_id: "${POD_NAME}"
|
||||
service:
|
||||
telemetry:
|
||||
metrics:
|
||||
address: 0.0.0.0:8888
|
||||
pipelines:
|
||||
logs/fluentbit-forward:
|
||||
exporters:
|
||||
- otlphttp/openobserve
|
||||
processors:
|
||||
- batch
|
||||
receivers:
|
||||
- otlp/logs
|
||||
logs/k8s_events:
|
||||
exporters:
|
||||
- otlphttp/openobserve_k8s_events
|
||||
processors:
|
||||
- batch
|
||||
- k8sattributes
|
||||
- resourcedetection
|
||||
receivers:
|
||||
- k8s_events
|
||||
metrics:
|
||||
exporters:
|
||||
- otlphttp/openobserve
|
||||
processors:
|
||||
- batch
|
||||
- k8sattributes
|
||||
- resourcedetection
|
||||
- metricstransform
|
||||
receivers:
|
||||
- k8s_cluster
|
||||
- spanmetrics
|
||||
- servicegraph
|
||||
- prometheus # Re-enabled for ServiceMonitor scraping
|
||||
traces:
|
||||
exporters:
|
||||
- otlphttp/openobserve
|
||||
- spanmetrics
|
||||
- servicegraph
|
||||
processors:
|
||||
- batch
|
||||
- k8sattributes
|
||||
- resourcedetection
|
||||
receivers:
|
||||
- otlp
|
||||
daemonSetUpdateStrategy: {}
|
||||
deploymentUpdateStrategy: {}
|
||||
env:
|
||||
- name: K8S_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: K8S_NODE_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.hostIP
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: OPENOBSERVE_AUTH
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: openobserve-collector-credentials
|
||||
key: authorization
|
||||
image: ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.127.0
|
||||
ingress:
|
||||
route: {}
|
||||
managementState: managed
|
||||
mode: statefulset
|
||||
observability:
|
||||
metrics:
|
||||
enableMetrics: true
|
||||
podDisruptionBudget:
|
||||
maxUnavailable: 1
|
||||
replicas: 1
|
||||
resources:
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 512Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
serviceAccount: openobserve-collector
|
||||
targetAllocator:
|
||||
enabled: true
|
||||
serviceAccount: openobserve-collector
|
||||
prometheusCR:
|
||||
enabled: true
|
||||
serviceMonitorSelector: {}
|
||||
podMonitorSelector: {}
|
||||
scrapeConfigSelector: {}
|
||||
upgradeStrategy: automatic
|
||||
Reference in New Issue
Block a user