20/01/2025

Open telemetry – dataprepper

Open telemetry protokolünü kullanirken herhangi bir tip backend den veri gelecektir. Ve gelen bu log ve telemetre verisini parse ederken örnegin servise göre ayirmak gerekecektir. Gelen payload icinde bir attribute u bunun icin kullanmak gerekecektir. Eger data-prepper kullaniyorsaniz (ki bence kullanmayin ama …yinede ) icinde nokta olan bir attribute varsa “mailing.testing.environment” gibi data-prepper bunu ancak processor ile bulabilir. Ancak bunu bilmekte yetmez birde (nedendir bilinmez google aramasinda 25nci sirada cikti) attributes/ u bilmek gerekir.

beklenen

processor:
    - copy_values:
        entries:
        - from_key: "mailing.testing.environment"
          to_key: environment

Calisan

processor:
    - copy_values:
        entries:
        - from_key: "/attributes/resource.attributes.environment"
          to_key: environment

daha sonra bunu sink ile ayrilmis olarak opensearch e gönderebilirsiniz.

sink:
    #- stdout: 
    - opensearch:
        hosts: [ "http://opensearch:9200" ]
        username: "<user>"
        password: "<password>"
        index: ${environment}-logs-${serviceAdi}

burada serviceAdi noktasiz attribute olarak geldiginden direk kullanabiliyoruz ama environment e processor gerekiyor. Yoksa aslinda nested variable degil ama !!!!