#
# 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.
#

# The logger configuration.
logger:
  # The log format pattern configuration.
  log_pattern: ${SATELLITE_LOGGER_LOG_PATTERN:%time [%level][%field] - %msg}
  # The time format pattern configuration.
  time_pattern: ${SATELLITE_LOGGER_TIME_PATTERN:2006-01-02 15:04:05.000}
  # The lowest level of printing allowed.
  level: ${SATELLITE_LOGGER_LEVEL:info}

# The Satellite self telemetry configuration.
telemetry:
  # The space concept for the deployment, such as the namespace concept in the Kubernetes.
  cluster: ${SATELLITE_TELEMETRY_CLUSTER:satellite-cluster}
  # The group concept for the deployment, such as the service resource concept in the Kubernetes.
  service: ${SATELLITE_TELEMETRY_SERVICE:satellite-service}
  # The minimum running unit, such as the pod concept in the Kubernetes.
  instance: ${SATELLITE_TELEMETRY_INSTANCE:satellite-instance}
  # Telemetry export type, support "prometheus", "metrics_service", "pprof" or "none", multiple split by ","
  export_type: ${SATELLITE_TELEMETRY_EXPORT_TYPE:prometheus,pprof}
  # Export telemetry data through Prometheus server, only works on "export_type=prometheus".
  prometheus:
    # The prometheus server address.
    address: ${SATELLITE_TELEMETRY_PROMETHEUS_ADDRESS::1234}
    # The prometheus server metrics endpoint.
    endpoint: ${SATELLITE_TELEMETRY_PROMETHEUS_ENDPOINT:/metrics}
  # Export telemetry data through native meter format to OAP backend, only works on "export_type=metrics_service".
  metrics_service:
    # The grpc-client plugin name, using the SkyWalking native batch meter protocol
    client_name: ${SATELLITE_TELEMETRY_METRICS_SERVICE_CLIENT_NAME:grpc-client}
    # The interval second for sending metrics
    interval: ${SATELLITE_TELEMETRY_METRICS_SERVICE_INTERVAL:10}
    # The prefix of telemetry metric name
    metric_prefix: ${SATELLITE_TELEMETRY_METRICS_SERVICE_METRIC_PREFIX:sw_stl_}
  # Export pprof service for detect performance issue
  pprof:
    # The pprof server address.
    address: ${SATELLITE_TELEMETRY_PPROF_ADDRESS::6060}

# The sharing plugins referenced by the specific plugins in the different pipes.
sharing:
  clients:
    - plugin_name: "grpc-client"
      # The gRPC server address finder type
      finder_type: ${SATELLITE_GRPC_CLIENT_FINDER:static}
      # The gRPC server address (default localhost:11800).
      server_addr: ${SATELLITE_GRPC_CLIENT:127.0.0.1:11800}
      # The gRPC kubernetes server address finder
      kubernetes_config:
        # The kubernetes API server address, If not define means using in kubernetes mode to connect
        api_server: ${SATELLITE_GRPC_CLIENT_KUBERNETES_API_SERVER:}
        # The HTTP basic authentication credentials for the targets.
        basic_auth:
          # The username for auth.
          username: ${SATELLITE_GRPC_CLIENT_KUBERNETES_BASIC_AUTH_USERNAME:}
          # The password for auth.
          password: ${SATELLITE_GRPC_CLIENT_KUBERNETES_BASIC_AUTH_PASSWORD:}
          # The password file path for auth.
          password_file: ${SATELLITE_GRPC_CLIENT_KUBERNETES_BASIC_AUTH_PASSWORD_FILE:}
        # The bearer token for the targets.
        bearer_token: ${SATELLITE_GRPC_CLIENT_KUBERNETES_BEARER_TOKEN:}
        # The bearer token file for the targets.
        bearer_token_file: ${SATELLITE_GRPC_CLIENT_KUBERNETES_BEARER_TOKEN_FILE:}
        # HTTP proxy server to use to connect to the targets.
        proxy_url: ${SATELLITE_GRPC_CLIENT_KUBERNETES_PROXY_URL:}
        # Used to connect to the targets.
        tls_config:
          # The CA cert to use for the targets.
          ca_file: ${SATELLITE_GRPC_CLIENT_KUBERNETES_TLS_CONFIG_CA_FILE:}
          # The client cert file for the targets.
          cert_file: ${SATELLITE_GRPC_CLIENT_KUBERNETES_TLS_CONFIG_CERT_FILE:}
          # The client key file for the targets.
          key_file: ${SATELLITE_GRPC_CLIENT_KUBERNETES_TLS_CONFIG_KEY_FILE:}
          # Used to verify the hostname for the targets.
          server_name: ${SATELLITE_GRPC_CLIENT_KUBERNETES_TLS_CONFIG_SERVER_NAME:}
          # Disable target certificate validation.
          insecure_skip_verify: ${SATELLITE_GRPC_CLIENT_KUBERNETES_TLS_CONFIG_INSECURE_SKIP_VERIFY:}
        namespaces:
          # Support to lookup namespaces.
          - ${SATELLITE_GRPC_CLIENT_KUBERNETES_NAMESPACE:default}
        # The kind of resource
        kind: ${SATELLITE_GRPC_CLIENT_KUBERNETES_KIND:pod}
        # The kind selector
        selector:
          # Label selector
          label: ${SATELLITE_GRPC_CLIENT_KUBERNETES_SELECTOR_LABEL:}
          # Field selector
          field: ${SATELLITE_GRPC_CLIENT_KUBERNETES_SELECTOR_FIELD:}
        # How to get the address exported port
        extra_port:
          # Resource target port
          port: ${SATELLITE_GRPC_CLIENT_KUBERNETES_EXTRA_PORT:11800}
      # The TLS switch
      enable_TLS: ${SATELLITE_GRPC_ENABLE_TLS:false}
      # The file path of client.pem. The config only works when opening the TLS switch.
      client_pem_path: ${SATELLITE_GRPC_CLIENT_PEM_PATH:"client.pem"}
      # The file path of client.key. The config only works when opening the TLS switch.
      client_key_path: ${SATELLITE_GRPC_CLIENT_KEY_PATH:"client.key"}
      # InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name.
      insecure_skip_verify: ${SATELLITE_GRPC_INSECURE_SKIP_VERIFY:false}
      # The file path oca.pem. The config only works when opening the TLS switch.
      ca_pem_path: ${SATELLITE_grpc_CA_PEM_PATH:"ca.pem"}
      # How frequently to check the connection(second)
      check_period: ${SATELLITE_GRPC_CHECK_PERIOD:5}
      # The auth value when send request
      authentication: ${SATELLITE_GRPC_AUTHENTICATION:""}
      # The gRPC send request timeout
      timeout:
        # The timeout for unary single request
        unary: ${SATELLITE_GRPC_TIMEOUT_UNARY:5s}
        # The timeout for unary stream request
        stream: ${SATELLITE_GRPC_TIMEOUT_STREAM:20s}
  servers:
    - plugin_name: "grpc-server"
      # The address of grpc server.
      address: ${SATELLITE_GRPC_ADDRESS:":11800"}
      # The TLS cert file path.
      tls_cert_file: ${SATELLITE_GRPC_TLS_CERT_FILE:""}
      # The TLS key file path.
      tls_key_file: ${SATELLITE_GRPC_TLS_KEY_FILE:""}
      # To Accept Connection Limiter when reach the resource
      accept_limit:
        # The max CPU utilization limit
        cpu_utilization: ${SATELLITE_GRPC_ACCEPT_LIMIT_CPU_UTILIZATION:75}
        # The max connection count
        connection_count: ${SATELLITE_GRPC_ACCEPT_LIMIT_CONNECTION_COUNT:4000}

# The working pipe configurations.
pipes:
  - common_config:
      pipe_name: logpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-log-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_LOGPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_LOGPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_LOGPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-log-grpc-forwarder
  - common_config:
      pipe_name: managementpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-management-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_LOGMANAGEMENT_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_LOGMANAGEMENT_SENDER_MAX_BUFFER_SIZE:20}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_LOGMANAGEMENT_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-management-grpc-forwarder
  - common_config:
      pipe_name: tracingpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-tracing-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_TRACINGPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_TRACINGPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_TRACINGPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-tracing-grpc-forwarder
  - common_config:
      pipe_name: profilepipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-profile-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_PROFILEPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_PROFILEPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_PROFILEPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-profile-grpc-forwarder
  - common_config:
      pipe_name: cdspipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-cds-receiver"
      queue:
        plugin_name: "none-queue"
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      client_name: grpc-client
      forwarders:
        - plugin_name: native-cds-grpc-forwarder
  - common_config:
      pipe_name: eventpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-event-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_EVENTPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_EVENTPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_EVENTPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-event-grpc-forwarder
  - common_config:
      pipe_name: jvmpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-jvm-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_JVMPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_JVMPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_JVMPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-jvm-grpc-forwarder
  - common_config:
      pipe_name: clrpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-clr-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_CLRPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_CLRPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_CLRPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-clr-grpc-forwarder
  - common_config:
      pipe_name: meterpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-meter-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_METERPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_METERPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_METERPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-meter-grpc-forwarder
          # The LRU policy cache size for hosting routine rules of service instance.
          routing_rule_lru_cache_size: ${SATELLITE_METERPIPE_FORWARD_ROUTING_RULE_LRU_CACHE_SIZE:5000}
          # The TTL of the LRU cache size for hosting routine rules of service instance.
          routing_rule_lru_cache_ttl: ${SATELLITE_METERPIPE_FORWARD_ROUTING_RULE_LRU_CACHE_TTL:180}
  - common_config:
      pipe_name: envoy-als-v2
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-envoy-als-v2-receiver"
        # The time interval between two flush operations. And the time unit is millisecond.
        flush_time: ${SATELLITE_ENVOY_ALS_V2_PIPE_RECEIVER_FLUSH_TIME:1000}
        # The max cache count when receive the message
        limit_count: ${SATELLITE_ENVOY_ALS_V2_PIPE_RECEIVER_LIMIT_COUNT:500}
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_ENVOY_ALS_V2_PIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_ENVOY_ALS_V2_PIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_ENVOY_ALS_V2_PIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: envoy-als-v2-grpc-forwarder
  - common_config:
      pipe_name: envoy-als-v3
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-envoy-als-v3-receiver"
        # The time interval between two flush operations. And the time unit is millisecond.
        flush_time: ${SATELLITE_ENVOY_ALS_V3_PIPE_RECEIVER_FLUSH_TIME:1000}
        # The max cache count when receive the message
        limit_count: ${SATELLITE_ENVOY_ALS_V3_PIPE_RECEIVER_LIMIT_COUNT:500}
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_ENVOY_ALS_V3_PIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_ENVOY_ALS_V3_PIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_ENVOY_ALS_V3_PIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: envoy-als-v3-grpc-forwarder
  - common_config:
      pipe_name: envoy-metrics-v2
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-envoy-metrics-v2-receiver"
        # The time interval between two flush operations. And the time unit is millisecond.
        flush_time: ${SATELLITE_ENVOY_METRICS_V2_PIPE_RECEIVER_FLUSH_TIME:1000}
        # The max cache count when receive the message
        limit_count: ${SATELLITE_ENVOY_METRICS_V2_PIPE_RECEIVER_LIMIT_COUNT:500}
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_ENVOY_METRICS_V2_PIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_ENVOY_METRICS_V2_PIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_ENVOY_METRICS_V2_PIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: envoy-metrics-v2-grpc-forwarder
  - common_config:
      pipe_name: envoy-metrics-v3
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-envoy-metrics-v3-receiver"
        # The time interval between two flush operations. And the time unit is millisecond.
        flush_time: ${SATELLITE_ENVOY_METRICS_V3_PIPE_RECEIVER_FLUSH_TIME:1000}
        # The max cache count when receive the message
        limit_count: ${SATELLITE_ENVOY_METRICS_V3_PIPE_RECEIVER_LIMIT_COUNT:500}
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_ENVOY_METRICS_V3_PIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_ENVOY_METRICS_V3_PIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_ENVOY_METRICS_V3_PIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: envoy-metrics-v3-grpc-forwarder
  - common_config:
      pipe_name: processpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-process-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_PROCESSPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_PROCESSPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_PROCESSPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-process-grpc-forwarder
  - common_config:
      pipe_name: ebpf-profilingpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-native-ebpf-profiling-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_EBPFPROFILINGPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_EBPFPROFILINGPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_EBPFPROFILINGPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: native-ebpf-profiling-grpc-forwarder
  - common_config:
      pipe_name: otlp-metrics-v1-pipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-otlp-metrics-v1-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
        # The partition count of queue.
        partition: ${SATELLITE_QUEUE_PARTITION:4}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_METERPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_METERPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_METERPIPE_SENDER_MIN_FLUSH_EVENTS:1}
      client_name: grpc-client
      forwarders:
        - plugin_name: otlp-metrics-v1-grpc-forwarder
          # The LRU policy cache size for hosting routine rules of service instance.
          routing_rule_lru_cache_size: ${SATELLITE_METERPIPE_FORWARD_ROUTING_RULE_LRU_CACHE_SIZE:5000}
          # The TTL of the LRU cache size for hosting routine rules of service instance.
          routing_rule_lru_cache_ttl: ${SATELLITE_METERPIPE_FORWARD_ROUTING_RULE_LRU_CACHE_TTL:180}
          # The label key of the routing data, multiple keys are split by ","
          routing_label_keys: net.host.name,host.name,job,service.name