{"id":40226,"date":"2026-02-25T14:01:07","date_gmt":"2026-02-25T11:01:07","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/"},"modified":"2026-02-25T14:01:07","modified_gmt":"2026-02-25T11:01:07","slug":"cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/","title":{"rendered":"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu"},"content":{"rendered":"<h2>Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn karma\u015f\u0131k, da\u011f\u0131t\u0131k sistemlerinde, uygulamalar\u0131m\u0131z\u0131n ve altyap\u0131m\u0131z\u0131n nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 anlamak, sorunlar\u0131 h\u0131zl\u0131ca tespit edip \u00e7\u00f6zmek ve kullan\u0131c\u0131 deneyimini optimize etmek hayati \u00f6nem ta\u015f\u0131r. \u0130\u015fte tam da bu noktada g\u00f6zlemlenebilirlik (observability) kavram\u0131 devreye giriyor. Bu makalede, g\u00f6zlemlenebilirli\u011fin ne oldu\u011funu, neden \u00f6nemli oldu\u011funu, OpenTelemetry&#8217;nin bu alandaki rol\u00fcn\u00fc ve Cloudflare API Gateway gibi kritik bir bile\u015fenin bulundu\u011fu mimarilerde OpenTelemetry ile nas\u0131l daha iyi bir g\u00f6zlemlenebilirlik sa\u011flayabilece\u011fimizi detayl\u0131ca inceleyece\u011fiz.<\/p>\n<h2>G\u00f6zlemlenebilirlik (Observability) Nedir?<\/h2>\n<p>G\u00f6zlemlenebilirlik, bir sistemin d\u0131\u015far\u0131dan g\u00f6zlemlenebilir \u00e7\u0131kt\u0131lar\u0131 (loglar, metrikler, izler) arac\u0131l\u0131\u011f\u0131yla i\u00e7 durumunun ne kadar iyi anla\u015f\u0131labildi\u011fini ifade eden bir \u00f6zelliktir. K\u0131sacas\u0131, sisteminize &#8220;ne oluyor?&#8221; sorusunu sorabildi\u011finizde ve bu soruya tatmin edici, detayl\u0131 cevaplar alabildi\u011finizde sisteminiz g\u00f6zlemlenebilirdir. Bu, \u00f6zellikle mikroservis mimarileri ve bulut tabanl\u0131 uygulamalar gibi karma\u015f\u0131k, dinamik ortamlarda kritik bir yetenektir.<\/p>\n<h3>G\u00f6zlemlenebilirlik ve \u0130zleme (Monitoring) Aras\u0131ndaki Fark<\/h3>\n<p>G\u00f6zlemlenebilirlik ve izleme terimleri s\u0131kl\u0131kla birbirinin yerine kullan\u0131lsa da, asl\u0131nda farkl\u0131 kavramlar\u0131 ifade ederler. \u0130zleme (monitoring), genellikle \u00f6nceden tan\u0131mlanm\u0131\u015f e\u015fik de\u011ferlere veya bilinen sorunlara odaklan\u0131r. &#8220;CPU kullan\u0131m\u0131 %80&#8217;in \u00fczerine \u00e7\u0131kt\u0131 m\u0131?&#8221; veya &#8220;Sunucu yan\u0131t vermiyor mu?&#8221; gibi sorulara cevap verir. Yani, *bildi\u011finiz sorunlar\u0131* takip etmenizi sa\u011flar.<\/p>\n<p>G\u00f6zlemlenebilirlik ise, *bilmedi\u011finiz sorunlar\u0131* veya beklenmedik davran\u0131\u015flar\u0131 anlaman\u0131za olanak tan\u0131r. Bir sistemde beklenmedik bir yava\u015flama oldu\u011funda, g\u00f6zlemlenebilirlik size bu yava\u015flaman\u0131n nedenini (\u00f6rne\u011fin, belirli bir veritaban\u0131 sorgusunun aniden yava\u015flamas\u0131 veya bir \u00fc\u00e7\u00fcnc\u00fc taraf API&#8217;sinin gecikmesi) bulmak i\u00e7in gerekli t\u00fcm veriyi sunar. \u0130zleme &#8220;ne&#8221; oldu\u011funu s\u00f6ylerken, g\u00f6zlemlenebilirlik &#8220;neden&#8221; oldu\u011funu anlaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<h3>G\u00f6zlemlenebilirli\u011fin \u00dc\u00e7 Temel S\u00fctunu: Loglar, Metrikler, \u0130zler<\/h3>\n<p>G\u00f6zlemlenebilirli\u011fin temelini olu\u015fturan \u00fc\u00e7 ana veri t\u00fcr\u00fc vard\u0131r:<\/p>\n<p>1.  <strong>Loglar (Logs):<\/strong> Bir sistemdeki belirli olaylar\u0131 kaydeden zaman damgal\u0131 metin kay\u0131tlar\u0131d\u0131r. Hata mesajlar\u0131, kullan\u0131c\u0131 giri\u015fi, veritaban\u0131 i\u015flemleri gibi discrete (ayr\u0131k) olaylar\u0131 i\u00e7erirler. Loglar, genellikle bir olay\u0131n tam olarak ne zaman ve nas\u0131l ger\u00e7ekle\u015fti\u011fini anlamak i\u00e7in kullan\u0131l\u0131r.<br \/>\n2.  <strong>Metrikler (Metrics):<\/strong> Zaman i\u00e7inde \u00f6l\u00e7\u00fclen say\u0131sal de\u011ferlerdir. CPU kullan\u0131m\u0131, bellek t\u00fcketimi, istek say\u0131s\u0131, hata oran\u0131, yan\u0131t s\u00fcresi gibi verileri i\u00e7erirler. Metrikler, sistemin genel sa\u011fl\u0131\u011f\u0131 ve performans\u0131 hakk\u0131nda toplu bilgiler sunar ve trendleri izlemek i\u00e7in idealdir.<br \/>\n3.  <strong>\u0130zler (Traces):<\/strong> Da\u011f\u0131t\u0131k bir sistemdeki tek bir iste\u011fin (request) u\u00e7tan uca yolculu\u011funu g\u00f6steren verilerdir. Bir iste\u011fin farkl\u0131 servisler aras\u0131nda nas\u0131l hareket etti\u011fini, her serviste ne kadar zaman ge\u00e7irdi\u011fini ve olas\u0131 hatalar\u0131n nerede meydana geldi\u011fini anlamak i\u00e7in kullan\u0131l\u0131rlar. \u0130zler, \u00f6zellikle mikroservis mimarilerinde performans darbo\u011fazlar\u0131n\u0131 ve ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 tespit etmek i\u00e7in vazge\u00e7ilmezdir.<\/p>\n<h3>Neden G\u00f6zlemlenebilirlik \u00d6nemlidir?<\/h3>\n<p>G\u00f6zlemlenebilirlik, modern yaz\u0131l\u0131m geli\u015ftirme ve operasyon s\u00fcre\u00e7lerinde bir\u00e7ok avantaj sunar:<\/p>\n<p>*   <strong>Daha H\u0131zl\u0131 Sorun Tespiti ve \u00c7\u00f6z\u00fcm\u00fc:<\/strong> Sorunlar\u0131n k\u00f6k nedenlerini daha h\u0131zl\u0131 bulman\u0131z\u0131 sa\u011flar.<br \/>\n*   <strong>Geli\u015ftirilmi\u015f Kullan\u0131c\u0131 Deneyimi:<\/strong> Performans sorunlar\u0131n\u0131 proaktif olarak tespit ederek kullan\u0131c\u0131lar\u0131n etkilenmesini \u00f6nler.<br \/>\n*   <strong>Daha \u0130yi Sistem Anlay\u0131\u015f\u0131:<\/strong> Uygulamalar\u0131n\u0131z\u0131n ve altyap\u0131n\u0131z\u0131n ger\u00e7ek d\u00fcnya ko\u015fullar\u0131nda nas\u0131l davrand\u0131\u011f\u0131n\u0131 derinlemesine anlaman\u0131za yard\u0131mc\u0131 olur.<br \/>\n*   <strong>Verimli Kaynak Kullan\u0131m\u0131:<\/strong> Performans darbo\u011fazlar\u0131n\u0131 veya gereksiz kaynak t\u00fcketimini belirleyerek optimizasyon f\u0131rsatlar\u0131 sunar.<br \/>\n*   <strong>Geli\u015ftirici Verimlili\u011fi:<\/strong> Geli\u015ftiricilerin kendi kodlar\u0131n\u0131n da\u011f\u0131t\u0131k bir sistemdeki etkile\u015fimlerini anlamalar\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<\/p>\n<h2>OpenTelemetry Nedir ve Neden Kullanmal\u0131y\u0131z?<\/h2>\n<p>OpenTelemetry, bulut yerlisi (cloud-native) yaz\u0131l\u0131m\u0131n g\u00f6zlemlenebilirli\u011fini sa\u011flamak i\u00e7in tasarlanm\u0131\u015f, CNCF (Cloud Native Computing Foundation) taraf\u0131ndan desteklenen a\u00e7\u0131k kaynakl\u0131 bir projedir. Amac\u0131, loglar, metrikler ve izler dahil olmak \u00fczere telemetri verilerini toplamak, i\u015flemek ve d\u0131\u015fa aktarmak i\u00e7in standartla\u015ft\u0131r\u0131lm\u0131\u015f, sat\u0131c\u0131dan ba\u011f\u0131ms\u0131z bir \u00e7er\u00e7eve sunmakt\u0131r.<\/p>\n<h3>OpenTelemetry&#8217;nin Bile\u015fenleri: SDK&#8217;lar, Collector, Exporter&#8217;lar<\/h3>\n<p>OpenTelemetry ekosistemi birka\u00e7 ana bile\u015fenden olu\u015fur:<\/p>\n<p>1.  <strong>SDK&#8217;lar (Software Development Kits):<\/strong> \u00c7e\u015fitli programlama dilleri i\u00e7in (Python, Java, Go, Node.js, .NET vb.) sa\u011flanan k\u00fct\u00fcphanelerdir. Uygulamalar\u0131n\u0131za telemetri verisi \u00fcretme yetene\u011fi kazand\u0131rmak i\u00e7in kullan\u0131l\u0131rlar. Otomatik enstr\u00fcmantasyon (framework&#8217;leri veya k\u00fct\u00fcphaneleri otomatik olarak izler) ve manuel enstr\u00fcmantasyon (kodunuza \u00f6zel izleme noktalar\u0131 ekleme) se\u00e7enekleri sunarlar.<br \/>\n2.  <strong>Collector:<\/strong> Telemetri verilerini al\u0131r, i\u015fler ve d\u0131\u015fa aktar\u0131r. Bir arac\u0131 (agent) veya a\u011f ge\u00e7idi (gateway) olarak \u00e7al\u0131\u015fabilir. Verileri toplama, filtreleme, d\u00f6n\u00fc\u015ft\u00fcrme, toplu i\u015fleme (batching) ve farkl\u0131 formatlara \u00e7evirme gibi g\u00f6revleri \u00fcstlenir. Bu sayede, uygulaman\u0131z\u0131n do\u011frudan bir g\u00f6zlemlenebilirlik backend&#8217;ine veri g\u00f6nderme y\u00fck\u00fcn\u00fc hafifletir ve farkl\u0131 backend&#8217;lere veri g\u00f6nderme esnekli\u011fi sa\u011flar.<br \/>\n3.  <strong>Exporter&#8217;lar:<\/strong> Toplanan telemetri verilerini belirli bir g\u00f6zlemlenebilirlik backend&#8217;ine (\u00f6rne\u011fin, Jaeger, Prometheus, Grafana, Datadog, Splunk, ELK Stack) g\u00f6ndermek i\u00e7in kullan\u0131l\u0131rlar. OpenTelemetry, bir\u00e7ok pop\u00fcler backend i\u00e7in yerle\u015fik d\u0131\u015fa aktar\u0131c\u0131lar sunar.<\/p>\n<h3>OpenTelemetry&#8217;nin Avantajlar\u0131<\/h3>\n<p>OpenTelemetry&#8217;yi kullanman\u0131n ba\u015fl\u0131ca avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<p>*   <strong>Sat\u0131c\u0131 Ba\u011f\u0131ms\u0131zl\u0131\u011f\u0131 (Vendor Neutrality):<\/strong> Verilerinizi belirli bir sat\u0131c\u0131ya veya \u00fcr\u00fcne kilitlemez. Toplad\u0131\u011f\u0131n\u0131z verileri istedi\u011finiz g\u00f6zlemlenebilirlik backend&#8217;ine g\u00f6nderebilirsiniz. Bu, gelecekte backend de\u011fi\u015ftirme esnekli\u011fi sa\u011flar.<br \/>\n*   <strong>Standartla\u015fma:<\/strong> Telemetri verilerinin toplanmas\u0131 ve formatlanmas\u0131 i\u00e7in end\u00fcstri standard\u0131 bir yakla\u015f\u0131m sunar. Bu, farkl\u0131 ara\u00e7lar\u0131n ve ekiplerin uyumlu bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>Zengin Ekosistem:<\/strong> Bir\u00e7ok programlama dili i\u00e7in SDK deste\u011fi ve \u00e7e\u015fitli backend&#8217;lerle entegrasyonu sayesinde geni\u015f bir kullan\u0131m alan\u0131na sahiptir.<br \/>\n*   <strong>Topluluk Deste\u011fi:<\/strong> CNCF&#8217;in bir par\u00e7as\u0131 olarak, geni\u015f ve aktif bir geli\u015ftirici toplulu\u011fu taraf\u0131ndan desteklenir, bu da s\u00fcrekli geli\u015fim ve iyile\u015ftirmeler anlam\u0131na gelir.<\/p>\n<h3>OpenTelemetry&#8217;nin \u00c7al\u0131\u015fma Prensibi<\/h3>\n<p>OpenTelemetry, temelde uygulaman\u0131zdan telemetri verilerini (izler, metrikler, loglar) toplar. Bu veriler daha sonra bir OpenTelemetry Collector&#8217;a g\u00f6nderilir. Collector, bu verileri i\u015fler (\u00f6rne\u011fin, filtreler, zenginle\u015ftirir, toplu hale getirir) ve yap\u0131land\u0131r\u0131lm\u0131\u015f d\u0131\u015fa aktar\u0131c\u0131lar arac\u0131l\u0131\u011f\u0131yla tercih etti\u011finiz g\u00f6zlemlenebilirlik backend&#8217;ine (\u00f6rne\u011fin, Jaeger i\u00e7in izler, Prometheus i\u00e7in metrikler) g\u00f6nderir. Backend&#8217;de bu veriler depolan\u0131r, g\u00f6rselle\u015ftirilir ve analiz edilir.<\/p>\n<h2>Cloudflare API Gateway&#8217;e Yak\u0131ndan Bak\u0131\u015f<\/h2>\n<p>Cloudflare API Gateway, modern API tabanl\u0131 uygulamalar\u0131n \u00f6n\u00fcnde duran, trafi\u011fi y\u00f6neten, g\u00fcvenli\u011fi sa\u011flayan ve performans\u0131 optimize eden kritik bir bile\u015fendir. API isteklerini y\u00f6nlendirme, kimlik do\u011frulama, yetkilendirme, h\u0131z s\u0131n\u0131rlama, \u00f6nbellekleme ve g\u00fcvenlik duvar\u0131 (WAF) gibi i\u015flevleri merkezi bir noktadan y\u00f6netmenizi sa\u011flar.<\/p>\n<h3>Cloudflare API Gateway&#8217;in Temel \u00d6zellikleri<\/h3>\n<p>Cloudflare API Gateway&#8217;in sundu\u011fu baz\u0131 temel \u00f6zellikler \u015funlard\u0131r:<\/p>\n<p>*   <strong>Trafik Y\u00f6netimi:<\/strong> \u0130stekleri do\u011fru servislere y\u00f6nlendirme, y\u00fck dengeleme.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong> DDoS korumas\u0131, Web Uygulama G\u00fcvenlik Duvar\u0131 (WAF), API kimlik do\u011frulama ve yetkilendirme, bot y\u00f6netimi.<br \/>\n*   <strong>Performans Optimizasyonu:<\/strong> \u00d6nbellekleme, i\u00e7erik da\u011f\u0131t\u0131m a\u011f\u0131 (CDN) entegrasyonu.<br \/>\n*   <strong>H\u0131z S\u0131n\u0131rlama (Rate Limiting):<\/strong> API&#8217;lerin a\u015f\u0131r\u0131 kullan\u0131m\u0131n\u0131 \u00f6nleme ve k\u00f6t\u00fc niyetli sald\u0131r\u0131lar\u0131 engelleme.<br \/>\n*   <strong>Geli\u015fmi\u015f Analizler:<\/strong> API trafi\u011fi, performans ve g\u00fcvenlik olaylar\u0131 hakk\u0131nda detayl\u0131 raporlar.<\/p>\n<h3>API Gateway Neden Kritik Bir Bile\u015fendir?<\/h3>\n<p>API Gateway, \u00f6zellikle mikroservis mimarilerinde merkezi bir kontrol noktas\u0131 g\u00f6revi g\u00f6r\u00fcr. Uygulama geli\u015ftiricilerin g\u00fcvenlik, performans ve trafik y\u00f6netimi gibi endi\u015felerle u\u011fra\u015fmak yerine i\u015f mant\u0131\u011f\u0131na odaklanmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, API&#8217;lerin d\u0131\u015f d\u00fcnyaya tutarl\u0131 ve g\u00fcvenli bir aray\u00fcz sunmas\u0131na yard\u0131mc\u0131 olur.<\/p>\n<h3>Cloudflare&#8217;\u0131n Kendi G\u00f6zlemlenebilirlik Ara\u00e7lar\u0131<\/h3>\n<p>Cloudflare, API Gateway ve di\u011fer hizmetleri i\u00e7in kapsaml\u0131 yerle\u015fik g\u00f6zlemlenebilirlik ara\u00e7lar\u0131 sunar:<\/p>\n<p>*   <strong>Analytics Dashboard:<\/strong> API trafi\u011fi, g\u00fcvenlik olaylar\u0131, performans metrikleri hakk\u0131nda g\u00f6rselle\u015ftirilmi\u015f veriler.<br \/>\n*   <strong>Logpush:<\/strong> Cloudflare&#8217;\u0131n \u00fcretti\u011fi HTTP istek loglar\u0131n\u0131, g\u00fcvenlik olay loglar\u0131n\u0131 ve di\u011fer operasyonel loglar\u0131 Amazon S3, Google Cloud Storage, Splunk, Datadog gibi \u00e7e\u015fitli hedeflere ger\u00e7ek zamanl\u0131 veya toplu olarak g\u00f6nderme yetene\u011fi.<br \/>\n*   <strong>Workers:<\/strong> Sunucusuz i\u015flevler arac\u0131l\u0131\u011f\u0131yla \u00f6zel loglama veya telemetri toplama mant\u0131\u011f\u0131 ekleme imkan\u0131.<\/p>\n<p>Bu ara\u00e7lar, Cloudflare ortam\u0131n\u0131n kendisi hakk\u0131nda de\u011ferli bilgiler sa\u011flar. Ancak, OpenTelemetry ile entegrasyon, Cloudflare&#8217;\u0131n sa\u011flad\u0131\u011f\u0131 verileri, kendi arka u\u00e7 servislerinizden gelen verilerle birle\u015ftirerek u\u00e7tan uca, b\u00fct\u00fcnsel bir g\u00f6zlemlenebilirlik deneyimi yaratman\u0131z\u0131 sa\u011flar.<\/p>\n<h2>Cloudflare API Gateway Ortam\u0131nda OpenTelemetry Entegrasyonu<\/h2>\n<p>Cloudflare API Gateway, y\u00f6netilen bir hizmet oldu\u011fundan, do\u011frudan i\u00e7ine OpenTelemetry SDK&#8217;lar\u0131 kurmak veya enstr\u00fcmanlamak m\u00fcmk\u00fcn de\u011fildir. Ancak, OpenTelemetry&#8217;yi kullanarak Cloudflare API Gateway&#8217;in bulundu\u011fu bir mimaride g\u00f6zlemlenebilirli\u011fi art\u0131rman\u0131n iki temel yolu vard\u0131r:<\/p>\n<p>1.  <strong>Gateway Arkas\u0131ndaki Servisleri OpenTelemetry ile \u0130zlemek:<\/strong> Bu, en yayg\u0131n ve etkili yakla\u015f\u0131md\u0131r.<br \/>\n2.  <strong>Cloudflare Loglar\u0131n\u0131 ve Metriklerini OpenTelemetry Ekosistemine Dahil Etmek:<\/strong> Cloudflare&#8217;\u0131n \u00fcretti\u011fi verileri OpenTelemetry Collector arac\u0131l\u0131\u011f\u0131yla i\u015flemek.<\/p>\n<h3>Do\u011frudan Gateway Entegrasyonunun Zorluklar\u0131 ve Yakla\u015f\u0131mlar\u0131<\/h3>\n<p>Y\u00f6netilen bir hizmet olan Cloudflare API Gateway&#8217;i do\u011frudan OpenTelemetry ile enstr\u00fcmanlamak, genellikle sat\u0131c\u0131 taraf\u0131ndan desteklenmedi\u011fi i\u00e7in m\u00fcmk\u00fcn de\u011fildir. Ancak, baz\u0131 dolayl\u0131 yakla\u015f\u0131mlar d\u00fc\u015f\u00fcn\u00fclebilir:<\/p>\n<p>*   <strong>Cloudflare Workers ile \u00d6zel Telemetri:<\/strong> Cloudflare Workers kullanarak API istekleri \u00fczerinde custom kod \u00e7al\u0131\u015ft\u0131rabilir ve bu kod i\u00e7inde OpenTelemetry SDK&#8217;lar\u0131n\u0131 (JavaScript i\u00e7in) kullanarak izler veya metrikler olu\u015fturup bir OpenTelemetry Collector&#8217;a g\u00f6nderebilirsiniz. Bu, \u00f6zellikle istek ba\u015fl\u0131klar\u0131n\u0131 veya belirli i\u015f mant\u0131\u011f\u0131n\u0131 izlemek istedi\u011finizde faydal\u0131 olabilir.<br \/>\n*   <strong>Proxy\/Sidecar Yakla\u015f\u0131m\u0131:<\/strong> API Gateway&#8217;in \u00f6n\u00fcnde veya arkas\u0131nda, t\u00fcm trafi\u011fi yakalayan ve OpenTelemetry ile enstr\u00fcmanlanm\u0131\u015f bir proxy (\u00f6rne\u011fin, Envoy) kullanmak. Bu, karma\u015f\u0131kl\u0131\u011f\u0131 art\u0131rsa da, daha gran\u00fcler kontrol sa\u011flayabilir. Ancak Cloudflare&#8217;\u0131n kendisi bir proxy g\u00f6revi g\u00f6rd\u00fc\u011f\u00fc i\u00e7in bu senaryo genellikle gereksizdir.<\/p>\n<p>En pratik ve yayg\u0131n yakla\u015f\u0131m, Cloudflare API Gateway&#8217;in arkas\u0131nda \u00e7al\u0131\u015fan kendi servislerinizi OpenTelemetry ile enstr\u00fcmanlamakt\u0131r.<\/p>\n<h3>Gateway Arkas\u0131ndaki Servisleri OpenTelemetry ile \u0130zlemek<\/h3>\n<p>Bu yakla\u015f\u0131mda, Cloudflare API Gateway gelen istekleri arka u\u00e7 servislerinize y\u00f6nlendirir. Siz de bu arka u\u00e7 servislerini (mikroservisler, sunucusuz i\u015flevler vb.) OpenTelemetry SDK&#8217;lar\u0131 ile enstr\u00fcmanlars\u0131n\u0131z.<\/p>\n<p><strong>Nas\u0131l \u00c7al\u0131\u015f\u0131r:<\/strong><\/p>\n<p>1.  Bir kullan\u0131c\u0131 iste\u011fi Cloudflare API Gateway&#8217;e ula\u015f\u0131r.<br \/>\n2.  Gateway, iste\u011fi ilgili arka u\u00e7 servisine y\u00f6nlendirir.<br \/>\n3.  Arka u\u00e7 servisi, OpenTelemetry SDK&#8217;lar\u0131 sayesinde bu iste\u011fi bir &#8220;iz&#8221; (trace) olarak ba\u015flat\u0131r.<br \/>\n4.  \u0130stek, servisin i\u00e7inde farkl\u0131 fonksiyonlar\u0131 veya veritaban\u0131 i\u015flemlerini tetikledik\u00e7e, OpenTelemetry bu olaylar\u0131 &#8220;span&#8221; olarak kaydeder ve iz&#8217;e ekler.<br \/>\n5.  E\u011fer istek ba\u015fka bir servise gidiyorsa, OpenTelemetry ba\u011flam yay\u0131l\u0131m\u0131 (context propagation) sayesinde iz kimli\u011fini (trace ID) HTTP ba\u015fl\u0131klar\u0131 arac\u0131l\u0131\u011f\u0131yla di\u011fer servise iletir. B\u00f6ylece, t\u00fcm servislerdeki ilgili span&#8217;ler ayn\u0131 iz alt\u0131nda toplan\u0131r.<br \/>\n6.  Servisler, toplad\u0131klar\u0131 izleri, metrikleri ve loglar\u0131 yerel bir OpenTelemetry Collector&#8217;a veya do\u011frudan merkezi bir Collector&#8217;a g\u00f6nderir.<br \/>\n7.  Collector, verileri i\u015fler ve Jaeger, Prometheus, Grafana gibi backend&#8217;lere aktar\u0131r.<\/p>\n<p>Bu sayede, Cloudflare API Gateway&#8217;den ge\u00e7en bir iste\u011fin, arka u\u00e7 servislerinizde nas\u0131l i\u015flendi\u011fini u\u00e7tan uca g\u00f6rebilir, performans darbo\u011fazlar\u0131n\u0131 ve hatalar\u0131 kolayca tespit edebilirsiniz.<\/p>\n<h3>Cloudflare Loglar\u0131n\u0131 ve Metriklerini OpenTelemetry Ekosistemine Dahil Etmek<\/h3>\n<p>Cloudflare&#8217;\u0131n \u00fcretti\u011fi loglar ve metrikler, sisteminizin genel sa\u011fl\u0131\u011f\u0131 ve API Gateway&#8217;in performans\u0131 hakk\u0131nda de\u011ferli bilgiler i\u00e7erir. Bu verileri OpenTelemetry ekosistemine dahil etmek, b\u00fct\u00fcnsel bir g\u00f6r\u00fcn\u00fcm elde etmenizi sa\u011flar.<\/p>\n<p><strong>Nas\u0131l Yap\u0131l\u0131r:<\/strong><\/p>\n<p>1.  <strong>Cloudflare Logpush Kullan\u0131m\u0131:<\/strong> Cloudflare Logpush hizmetini yap\u0131land\u0131rarak HTTP istek loglar\u0131n\u0131, g\u00fcvenlik olay loglar\u0131n\u0131 ve di\u011fer loglar\u0131 bir depolama hedefine (\u00f6rne\u011fin, Amazon S3, Google Cloud Storage) veya do\u011frudan bir HTTP u\u00e7 noktas\u0131na (webhook) g\u00f6nderin.<br \/>\n2.  <strong>OpenTelemetry Collector ile Log T\u00fcketimi:<\/strong><br \/>\n    *   E\u011fer loglar\u0131 bir depolama hedefine g\u00f6nderiyorsan\u0131z, bir OpenTelemetry Collector&#8217;\u0131 bu depolama hedefinden loglar\u0131 okuyacak \u015fekilde yap\u0131land\u0131rabilirsiniz (\u00f6rne\u011fin, S3 receiver kullanarak).<br \/>\n    *   E\u011fer Cloudflare Logpush&#8217;u bir HTTP u\u00e7 noktas\u0131na g\u00f6nderiyorsan\u0131z, Collector&#8217;\u0131 bir HTTP receiver ile bu u\u00e7 noktay\u0131 dinleyecek \u015fekilde ayarlayabilirsiniz.<br \/>\n    *   Collector, ald\u0131\u011f\u0131 loglar\u0131 OpenTelemetry log format\u0131na d\u00f6n\u00fc\u015ft\u00fcrebilir, zenginle\u015ftirebilir ve ard\u0131ndan Prometheus\/Grafana (metrik olarak), ELK Stack (log olarak) veya di\u011fer log y\u00f6netim sistemlerine aktarabilir.<br \/>\n3.  <strong>Metrik Entegrasyonu:<\/strong> Cloudflare&#8217;\u0131n kendi metrikleri genellikle API veya panelleri arac\u0131l\u0131\u011f\u0131yla eri\u015filebilir. Do\u011frudan OpenTelemetry format\u0131na d\u00f6n\u00fc\u015ft\u00fcrmek karma\u015f\u0131k olabilir. Ancak, Cloudflare API&#8217;lerini kullanarak metrikleri \u00e7ekip, bunlar\u0131 bir OpenTelemetry Collector&#8217;a g\u00f6nderecek \u00f6zel bir servis yazabilirsiniz. Collector daha sonra bu metrikleri Prometheus veya ba\u015fka bir metrik backend&#8217;ine aktarabilir.<\/p>\n<p>Bu entegrasyon, Cloudflare&#8217;\u0131n sundu\u011fu d\u0131\u015f katman g\u00f6zlemlenebilirli\u011fini, kendi uygulamalar\u0131n\u0131z\u0131n i\u00e7 g\u00f6zlemlenebilirli\u011fi ile birle\u015ftirerek, API isteklerinin t\u00fcm ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc kapsayan g\u00fc\u00e7l\u00fc bir analiz yetene\u011fi sunar.<\/p>\n<h2>Pratik Ad\u0131mlar ve \u00d6rnek Senaryolar<\/h2>\n<p>\u015eimdi, OpenTelemetry&#8217;yi Cloudflare API Gateway arkas\u0131ndaki bir servise nas\u0131l entegre edece\u011finize dair pratik ad\u0131mlara ve \u00f6rnek senaryolara g\u00f6z atal\u0131m.<\/p>\n<h3>OpenTelemetry SDK ile Servisleri Enstr\u00fcmanlamak (\u00d6rnek: Node.js\/Python)<\/h3>\n<p>Arka u\u00e7 servislerinizi OpenTelemetry ile enstr\u00fcmanlamak, genellikle birka\u00e7 ad\u0131mdan olu\u015fur:<\/p>\n<p>1.  <strong>Gerekli K\u00fct\u00fcphaneleri Kurma:<\/strong><br \/>\n    *   <strong>Node.js:<\/strong><\/p>\n<pre><code class=\"language-bash\">npm install @opentelemetry\/api @opentelemetry\/sdk-node @opentelemetry\/auto-instrumentations-node @opentelemetry\/exporter-otlp-proto<\/pre>\n<p><\/code><br \/>\n    *   <strong>Python:<\/strong><\/p>\n<pre><code class=\"language-bash\">pip install opentelemetry-sdk opentelemetry-exporter-otlp opentelemetry-instrumentation-flask # veya django, fastapi<\/pre>\n<p><\/code><br \/>\n2.  <strong>Enstr\u00fcmantasyonu Ba\u015flatma:<\/strong> Uygulaman\u0131z\u0131n ba\u015flang\u0131\u00e7 noktas\u0131nda OpenTelemetry SDK's\u0131n\u0131 yap\u0131land\u0131rman\u0131z gerekir.<\/p>\n<p>    *   <strong>Node.js (\u00f6rnek <code>server.js<\/code> veya <code>app.js<\/code> dosyas\u0131n\u0131n ba\u015f\u0131nda):<\/strong><\/p>\n<pre><code class=\"language-javascript\">\/\/ tracer.js\n        const { NodeSDK } = require('@opentelemetry\/sdk-node');\n        const { OTLPTraceExporter } = require('@opentelemetry\/exporter-otlp-proto');\n        const { Resource } = require('@opentelemetry\/resources');\n        const { SemanticResourceAttributes } = require('@opentelemetry\/semantic-conventions');\n        const { getNodeAutoInstrumentations } = require('@opentelemetry\/auto-instrumentations-node');\n\n        const sdk = new NodeSDK({\n          resource: new Resource({\n            [SemanticResourceAttributes.SERVICE_NAME]: 'my-api-service',\n            [SemanticResourceAttributes.SERVICE_VERSION]: '1.0.0',\n          }),\n          traceExporter: new OTLPTraceExporter({\n            url: 'http:\/\/localhost:4318\/v1\/traces', \/\/ OpenTelemetry Collector'\u0131n OTLP HTTP u\u00e7 noktas\u0131\n          }),\n          instrumentations: [getNodeAutoInstrumentations()],\n        });\n\n        sdk.start();\n        console.log('OpenTelemetry SDK started.');\n\n        \/\/ Uygulaman\u0131z\u0131n geri kalan\u0131n\u0131 burada ba\u015flat\u0131n\n        require('.\/app'); \/\/ \u00d6rne\u011fin, Express uygulaman\u0131z\u0131n oldu\u011fu dosya<\/pre>\n<p><\/code><br \/>\n        Bu <code>tracer.js<\/code> dosyas\u0131n\u0131 <code>node -r .\/tracer.js app.js<\/code> \u015feklinde \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<p>    *   <strong>Python (\u00f6rnek <code>app.py<\/code>):<\/strong><\/p>\n<pre><code class=\"language-python\">from opentelemetry import trace\n        from opentelemetry.sdk.resources import Resource\n        from opentelemetry.sdk.trace import TracerProvider\n        from opentelemetry.sdk.trace.export import BatchSpanProcessor\n        from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter\n        from opentelemetry.instrumentation.flask import FlaskInstrumentor # veya di\u011fer framework'ler i\u00e7in\n\n        # Kaynak tan\u0131mlamas\u0131\n        resource = Resource.create({\n            \"service.name\": \"my-api-service\",\n            \"service.version\": \"1.0.0\",\n        })\n\n        # Tracer sa\u011flay\u0131c\u0131y\u0131 ayarla\n        provider = TracerProvider(resource=resource)\n        trace.set_tracer_provider(provider)\n\n        # OTLP exporter'\u0131 ayarla (Collector'a g\u00f6ndermek i\u00e7in)\n        otlp_exporter = OTLPSpanExporter(endpoint=\"http:\/\/localhost:4318\/v1\/traces\") # OpenTelemetry Collector'\u0131n OTLP HTTP u\u00e7 noktas\u0131\n        span_processor = BatchSpanProcessor(otlp_exporter)\n        provider.add_span_processor(span_processor)\n\n        # Flask uygulamas\u0131n\u0131 enstr\u00fcmanla\n        from flask import Flask\n        app = Flask(__name__)\n        FlaskInstrumentor().instrument_app(app)\n\n        @app.route(\"\/\")\n        def hello_world():\n            return \"<p>Hello, World!<\/p>\"\n\n        if __name__ == \"__main__\":\n            app.run(debug=True)<\/pre>\n<p><\/code><br \/>\n3.  <strong>Manuel Enstr\u00fcmantasyon (Gerekti\u011finde):<\/strong> Otomatik enstr\u00fcmantasyon \u00e7o\u011fu zaman yeterli olsa da, belirli i\u015f mant\u0131\u011f\u0131 ad\u0131mlar\u0131n\u0131 veya kritik kod bloklar\u0131n\u0131 \u00f6zel olarak izlemek i\u00e7in manuel span'ler olu\u015fturabilirsiniz.<\/p>\n<p>    *   <strong>Python (manuel span \u00f6rne\u011fi):<\/strong><\/p>\n<pre><code class=\"language-python\">tracer = trace.get_tracer(__name__)\n\n        @app.route(\"\/process\")\n        def process_data():\n            with tracer.start_as_current_span(\"process-data-operation\") as span:\n                # Baz\u0131 i\u015flemler...\n                span.set_attribute(\"data.size\", 1024)\n                # Ba\u015fka bir fonksiyon \u00e7a\u011fr\u0131s\u0131\n                result = some_internal_function()\n                return f\"<p>Processed: {result}<\/p>\"<\/pre>\n<p><\/code><\/p>\n<h3>OpenTelemetry Collector Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>OpenTelemetry Collector, telemetri verilerini al\u0131p i\u015fleyerek backend'lere g\u00f6nderen merkezi bir bile\u015fendir. Bir Docker container'\u0131 olarak veya do\u011frudan bir sunucuya kurulabilir.<\/p>\n<p><strong>\u00d6rnek <code>otel-collector-config.yaml<\/code>:<\/strong><\/p>\n<pre><code class=\"language-yaml\">receivers:\n  otlp:\n    protocols:\n      http: # SDK'lardan HTTP \u00fczerinden OTLP verisi almak i\u00e7in\n        endpoint: 0.0.0.0:4318\n      grpc: # SDK'lardan gRPC \u00fczerinden OTLP verisi almak i\u00e7in\n        endpoint: 0.0.0.0:4317\n\nprocessors:\n  batch: # Verileri toplu i\u015fleyerek g\u00f6nderme\n    send_batch_size: 100\n    timeout: 10s\n  memory_limiter: # Bellek kullan\u0131m\u0131n\u0131 s\u0131n\u0131rlama\n    limit_mib: 256\n    spike_limit_mib: 64\n    check_interval: 5s\n\nexporters:\n  jaeger: # \u0130zleri Jaeger'a g\u00f6nderme\n    endpoint: jaeger:14250 # Jaeger Agent\/Collector gRPC portu\n    tls:\n      insecure: true\n  prometheus: # Metrikleri Prometheus'a g\u00f6nderme\n    endpoint: 0.0.0.0:8889 # Prometheus taraf\u0131ndan scrape edilecek port\n  logging: # Debugging i\u00e7in konsola loglama\n    verbosity: detailed\n  otlp\/grafana: # Loglar\u0131 ve di\u011fer verileri Grafana Loki\/Tempo'ya g\u00f6nderme (\u00f6rnek)\n    endpoint: http:\/\/grafana-tempo:4318\n    tls:\n      insecure: true\n\nservice:\n  pipelines:\n    traces:\n      receivers: [otlp]\n      processors: [memory_limiter, batch]\n      exporters: [jaeger, logging, otlp\/grafana] # Jaeger ve Grafana Tempo'ya g\u00f6nder\n    metrics:\n      receivers: [otlp]\n      processors: [memory_limiter, batch]\n      exporters: [prometheus, logging] # Prometheus'a g\u00f6nder\n    logs:\n      receivers: [otlp]\n      processors: [memory_limiter, batch]\n      exporters: [logging, otlp\/grafana] # Grafana Loki'ye g\u00f6nder<\/pre>\n<p><\/code><br \/>\n<strong>Docker ile \u00c7al\u0131\u015ft\u0131rma:<\/strong><\/p>\n<pre><code class=\"language-bash\">docker run -p 4317:4317 -p 4318:4318 -p 8889:8889 \\\n  -v .\/otel-collector-config.yaml:\/etc\/otel-collector-config.yaml \\\n  otel\/opentelemetry-collector:latest \\\n  --config=\/etc\/otel-collector-config.yaml<\/pre>\n<p><\/code><\/p>\n<h3>Verilerin Bir Backend'e G\u00f6nderilmesi (Jaeger, Prometheus, Grafana, ELK)<\/h3>\n<p>OpenTelemetry Collector arac\u0131l\u0131\u011f\u0131yla toplanan veriler, \u00e7e\u015fitli g\u00f6zlemlenebilirlik backend'lerine g\u00f6nderilebilir:<\/p>\n<p>*   <strong>\u0130zler (Traces):<\/strong> Jaeger (a\u00e7\u0131k kaynak), Grafana Tempo, New Relic, Datadog gibi da\u011f\u0131t\u0131k izleme sistemlerine g\u00f6nderilir.<br \/>\n*   <strong>Metrikler (Metrics):<\/strong> Prometheus (a\u00e7\u0131k kaynak), Grafana Mimir, VictoriaMetrics, Datadog gibi metrik depolama ve g\u00f6rselle\u015ftirme sistemlerine g\u00f6nderilir. Prometheus, metrikleri Collector'dan \"scrape\" eder.<br \/>\n*   <strong>Loglar (Logs):<\/strong> ELK Stack (Elasticsearch, Logstash, Kibana), Grafana Loki, Splunk gibi log y\u00f6netim sistemlerine g\u00f6nderilir.<\/p>\n<p>Bu backend'ler, toplanan verileri g\u00f6rselle\u015ftirmenizi, sorgulaman\u0131z\u0131 ve analiz etmenizi sa\u011flayarak sisteminizin i\u00e7g\u00f6r\u00fclerini ortaya \u00e7\u0131kar\u0131r. \u00d6rne\u011fin, Jaeger'da bir izi inceleyerek bir iste\u011fin Cloudflare API Gateway'den ge\u00e7ip arka u\u00e7 servislerinizde nas\u0131l ilerledi\u011fini<\/p>\n","protected":false},"excerpt":{"rendered":"Hello, World!","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1341],"tags":[],"class_list":{"0":"post-40226","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-cloud","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu\" \/>\n<meta property=\"og:description\" content=\"Hello, World!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-25T11:01:07+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu\",\"datePublished\":\"2026-02-25T11:01:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/\"},\"wordCount\":2538,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Cloud\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/\",\"name\":\"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-25T11:01:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/","og_locale":"tr_TR","og_type":"article","og_title":"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu","og_description":"Hello, World!","og_url":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-25T11:01:07+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"15 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu","datePublished":"2026-02-25T11:01:07+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/"},"wordCount":2538,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Cloud"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/","url":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/","name":"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-25T11:01:07+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/cloudflare-api-gateway-ortaminda-gozlemlenebilirlik-ve-opentelemetry-entegrasyonu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cloudflare API Gateway Ortam\u0131nda G\u00f6zlemlenebilirlik ve OpenTelemetry Entegrasyonu"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=40226"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40226\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=40226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=40226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=40226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}