# Parsing logs as metrics and sending to CloudWatch
# ------------------------------------------------------------------------------
# WIP

data_dir: "/var/lib/vector"

# Ingest
sources:
  file:
    type: "file"
    include: ["sample.log"]
    start_at_beginning: true

# Structure and parse the data
transforms:
  remap:
    inputs: ["file"]
    type: "remap"
    drop_on_error: false
    source: |
      . |= parse_apache_log!(string!(.message), "common")

  # Transform into metrics
  log_to_metric:
    inputs: ["remap"]
    type: "log_to_metric"
    metrics:
      - type: "counter"
        increment_by_value: true
        field: "bytes_out"
        tags:
          method: "{{method}}"
          status: "{{status}}"

# Output data
sinks:
  console_metrics:
    inputs: ["log_to_metric"]
    type: "console"
    encoding:
      codec: "json"

  console_logs:
    inputs: ["remap"]
    type: "console"
    encoding:
      codec: "json"

  cloudwatch:
    inputs: ["log_to_metric"]
    type: "aws_cloudwatch_metrics"
    namespace: "vector"
    endpoint: "http://localhost:4566"
