apiVersion: v1
kind: ConfigMap
metadata:
name: fluentd-metrics-conf
labels:
app: metrics-to-splunk
data:
fluent.conf: |
log_level debug
@type kubernetes_metrics
tag kube.*
insecure_ssl true
node_name "#{ENV['MY_NODE_NAME']}"
@type record_modifier
metric_name ${tag}
@type record_modifier
source ${record['node']}
@type record_modifier
source ${record['node']}/${record['pod-name']}
@type record_modifier
source ${record['node']}/${record['pod-name']}/${record['name']}
@type record_modifier
source ${record['node']}/${record['pod-name']}/${record['container-name']}
@type splunk_hec
protocol https
hec_host my.splunk.host
hec_port 8088
hec_token my.hec.token
data_type metric
metric_name_key metric_name
metric_value_key value
host "#{ENV['MY_NODE_NAME']}"
source_key source
insecure_ssl true
interval 15s
@type memory
total_limit_size 100m
chunk_limit_size 10m
flush_interval 15s
flush_thread_count 1
overflow_action block
retry_max_times 3
---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: metrics-to-splunk
labels:
app: metrics-to-splunk
engine: fluentd
spec:
template:
metadata:
labels:
app: metrics-to-splunk
engine: fluentd
annotations:
spec:
containers:
- name: fluentd
image: splunk/connect-for-kubernetes:v1.0.0-beta
imagePullPolicy: Never
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
resources:
requests:
cpu: 200m
memory: 200Mi
volumeMounts:
- name: conf-configmap
mountPath: /fluentd/etc
volumes:
- name: conf-configmap
configMap:
name: fluentd-metrics-conf