# Copyright 2023 Google LLC
#
# Licensed 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
#
#      https:#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.

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

  filelog:
    include: [ /logging/*.log ]
    start_at: beginning
    operators:
      - type: regex_parser
        regex: '^sample-app \[(?P<trace_id>\S*)\]\[spanId: (?P<span_id>\S*)\]: .*'
        trace:
          trace_id:
            parse_from: attributes.trace_id
          span_id:
            parse_from: attributes.span_id

processors:
  batch:
    # batch metrics before sending to reduce API usage
    send_batch_max_size: 200
    send_batch_size: 200
    timeout: 5s

  memory_limiter:
    # drop metrics if memory usage gets too high
    check_interval: 1s
    limit_percentage: 65
    spike_limit_percentage: 20

  resourcedetection:
    detectors: [env, gcp]
    timeout: 2s
    override: false

exporters:
  googlecloud:
    log:
      default_log_name: ltm-sample-app
  googlemanagedprometheus:

extensions:
  health_check:

service:
  extensions: [health_check]
  pipelines:
    traces:
      receivers: [otlp]
      processors: [resourcedetection]
      exporters: [googlecloud]
    logs:
      receivers: [otlp, filelog]
      processors: [resourcedetection]
      exporters: [googlecloud]
    metrics:
      receivers: [otlp]
      processors: [resourcedetection]
      exporters: [googlemanagedprometheus]
