configs/rover_configs.yaml (92 lines of code) (raw):
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.
#
logger:
# The lowest level of printing allowed.
level: ${ROVER_LOGGER_LEVEL:INFO}
core:
# The name of the cluster.
cluster_name: ${ROVER_CORE_CLUSTER_NAME:}
backend:
# The backend server address
addr: ${ROVER_BACKEND_ADDR:localhost:11800}
# The TLS switch
enable_TLS: ${ROVER_BACKEND_ENABLE_TLS:false}
# The file path of client.pem. The config only works when opening the TLS switch.
client_pem_path: ${ROVER_BACKEND_PEM_PATH:}
# The file path of client.key. The config only works when opening the TLS switch.
client_key_path: ${ROVER_BACKEND_KEY_PATH:}
# InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name.
insecure_skip_verify: ${ROVER_BACKEND_INSECURE_SKIP_VERIFY:false}
# The file path oca.pem. The config only works when opening the TLS switch.
ca_pem_path: ${ROVER_BACKEND_CA_PEM_PATH:}
# How frequently to check the connection(second)
check_period: ${ROVER_BACKEND_CHECK_PERIOD:5}
# The auth value when send request
authentication: ${ROVER_BACKEND_AUTHENTICATION:}
process_discovery:
# The period of report or keep alive process(second)
heartbeat_period: ${ROVER_PROCESS_DISCOVERY_HEARTBEAT_PERIOD:20s}
# The agent sends the process properties to the backend every: heartbeart period * properties report period
properties_report_period: ${ROVER_PROCESS_DISCOVERY_PROPERTIES_REPORT_PERIOD:10}
kubernetes:
# Is active the kubernetes process detector
active: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ACTIVE:true}
# Current node name in kubernetes environment
node_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_NODE_NAME:}
# include namespaces, multiple namespace split by ",", if empty means including all namespaces
namespaces: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_NAMESPACES:}
analyzers:
- active: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_ENVOY_ACTIVE:true}
filters:
- ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_ENVOY_HAS_ENVOY:.Pod.HasContainer "istio-proxy"}
- ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_ENVOY_CONTAINER_IS_ENVOY:eq .Container.Name "istio-proxy"}
layer: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_ENVOY_LAYER:MESH_DP}
service_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_ENVOY_SERVICE_NAME:{{.Pod.LabelValue "service.istio.io/canonical-name,app.kubernetes.io/name,app" ""}}.{{.Pod.Namespace}}}
instance_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_ENVOY_INSTANCE_NAME:{{.Pod.Name}}}
process_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_ENVOY_PROCESS_NAME:{{.Process.ExeName}}}
labels: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_ENVOY_LABELS:mesh-envoy}
- active: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_APPLICATION_ACTIVE:true}
filters:
- ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_APPLICATION_HAS_ENVOY:.Pod.HasContainer "istio-proxy"}
- ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_APPLICATION_CONTAINER_NOT_ENVOY:ne .Container.Name "istio-proxy"}
layer: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_APPLICATION_LAYER:MESH}
service_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_APPLICATION_SERVICE_NAME:{{.Pod.LabelValue "service.istio.io/canonical-name,app.kubernetes.io/name,app" ""}}.{{.Pod.Namespace}}}
instance_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_APPLICATION_INSTANCE_NAME:{{.Pod.Name}}}
process_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_APPLICATION_PROCESS_NAME:{{.Process.ExeName}}}
labels: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_ISTIO_APPLICATION_LABELS:mesh-application}
- active: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_K8S_SERVICE_ACTIVE:true}
filters:
- ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_K8S_SERVICE_HAS_SERVICE:.Pod.HasServiceName}
layer: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_K8S_SERVICE_LAYER:K8S_SERVICE}
service_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_K8S_SERVICE_NAME:{{.Pod.ServiceName}}.{{.Pod.Namespace}}}
instance_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_K8S_SERVICE_INSTANCE_NAME:{{.Pod.Name}}}
process_name: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_K8S_SERVICE_PROCESS_NAME:{{.Process.ExeName}}}
labels: ${ROVER_PROCESS_DISCOVERY_KUBERNETES_ANALYZER_K8S_SERVICE_LABLES:k8s-service}
profiling:
# Is active the process profiling
active: ${ROVER_PROFILING_ACTIVE:true}
# Check the profiling task interval
check_interval: ${ROVER_PROFILING_CHECK_INTERVAL:10s}
# Combine existing profiling data and report to the backend interval
flush_interval: ${ROVER_PROFILING_FLUSH_INTERVAL:5s}
# Customize profiling task config
task:
# The config when executing ON_CPU profiling task
on_cpu:
# The profiling stack dump period
dump_period: ${ROVER_PROFILING_TASK_ON_CPU_DUMP_PERIOD:9ms}
network:
# The interval of send metrics to the backend
report_interval: ${ROVER_PROFILING_TASK_NETWORK_TOPOLOGY_REPORT_INTERVAL:2s}
# The prefix of network profiling metrics name
meter_prefix: ${ROVER_PROFILING_TASK_NETWORK_TOPOLOGY_METER_PREFIX:rover_net_p}
# The protocol analyzer config for 7-Layer
protocol_analyze:
# The size of socket data buffer on each CPU
per_cpu_buffer: ${ROVER_PROFILING_TASK_NETWORK_PROTOCOL_ANALYZE_PER_CPU_BUFFER:400KB}
# The count of parallel protocol analyzer
parallels: ${ROVER_PROFILING_TASK_NETWORK_PROTOCOL_ANALYZE_PARALLELS:2}
# The size of per paralleled analyzer queue
queue_size: ${ROVER_PROFILING_TASK_NETWORK_PROTOCOL_ANALYZE_QUEUE_SIZE:5000}
# The profiling config of the protocols
sampling:
# The HTTP/1.x and HTTP/2.x profiling config
http:
# The default body encoding when sampling the request
default_request_encoding: ${ROVER_PROFILING_TASK_NETWORK_PROTOCOL_ANALYZE_SAMPLING_HTTP_DEFAULT_REQUEST_ENCODING:UTF-8}
# The default body encoding when sampling the response
default_response_encoding: ${ROVER_PROFILING_TASK_NETWORK_PROTOCOL_ANALYZE_SAMPLING_HTTP_DEFAULT_RESPONSE_ENCODING:UTF-8}
# continuous profiling config
continuous:
# continuous related meters prefix name
meter_prefix: ${ROVER_PROFILING_CONTINUOUS_METER_PREFIX:rover_con_p}
# The interval of fetch metrics from the system, such as Process CPU, System Load, etc.
fetch_interval: ${ROVER_PROFILING_CONTINUOUS_FETCH_INTERVAL:1s}
# The interval of check metrics is reach the thresholds
check_interval: ${ROVER_PROFILING_CONTINUOUS_CHECK_INTERVAL:5s}
trigger:
# the duration of the profiling task
execute_duration: ${ROVER_PROFILING_CONTINUOUS_TRIGGER_EXECUTE_DURATION:10m}
# the minimal duration between the execution of the same profiling task
silence_duration: ${ROVER_PROFILING_CONTINUOUS_TRIGGER_SILENCE_DURATION:20m}
access_log:
# Is active the access log monitoring
active: ${ROVER_ACCESS_LOG_ACTIVE:false}
# Exclude processes in the specified Kubernetes namespace. Multiple namespaces split by ","
exclude_namespaces: ${ROVER_ACCESS_LOG_EXCLUDE_NAMESPACES:istio-system,cert-manager,kube-system}
# Exclude processes in the specified cluster which defined in the process module. Multiple clusters split by ","
exclude_cluster: ${ROVER_ACCESS_LOG_EXCLUDE_CLUSTER:}
flush:
# The max count of access log when flush to the backend
max_count: ${ROVER_ACCESS_LOG_FLUSH_MAX_COUNT:10000}
# The period of flush access log to the backend
period: ${ROVER_ACCESS_LOG_FLUSH_PERIOD:5s}
connection_analyze:
# The size of connection buffer on each CPU
per_cpu_buffer: ${ROVER_ACCESS_LOG_CONNECTION_ANALYZE_PER_CPU_BUFFER:200KB}
# The count of parallel connection event parse
parse_parallels: ${ROVER_ACCESS_LOG_CONNECTION_ANALYZE_PARSE_PARALLELS:1}
# The count of parallel connection analyzer
analyze_parallels: ${ROVER_ACCESS_LOG_CONNECTION_ANALYZE_PARALLELS:1}
# The size of per paralleled analyzer queue
queue_size: ${ROVER_ACCESS_LOG_CONNECTION_ANALYZE_QUEUE_SIZE:2000}
protocol_analyze:
# The size of socket data buffer on each CPU
per_cpu_buffer: ${ROVER_ACCESS_LOG_PROTOCOL_ANALYZE_PER_CPU_BUFFER:400KB}
# The count of parallel protocol event parse
parse_parallels: ${ROVER_ACCESS_LOG_PROTOCOL_ANALYZE_PARSE_PARALLELS:2}
# The count of parallel protocol analyzer
analyze_parallels: ${ROVER_ACCESS_LOG_PROTOCOL_ANALYZE_PARALLELS:2}
# The size of per paralleled analyzer queue
queue_size: ${ROVER_ACCESS_LOG_PROTOCOL_ANALYZE_QUEUE_SIZE:5000}
pprof:
# Is active the pprof
active: ${ROVER_PPROF_ACTIVE:false}
# The bind port of the pprof HTTP server
port: ${ROVER_PPROF_PORT:6060}