> ## Documentation Index
> Fetch the complete documentation index at: https://docs.logbrew.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Uygulama telemetrisi için SDK entegrasyonu

> Çalışma zamanınız için bir LogBrew SDK'sı seçin. Alım anahtarını yapılandırın. Uygulama telemetrisi gönderin ve test olayını projenizde bulun.

Çalışma zamanınız için LogBrew SDK paketini kurun. SDK olayları biçimlendirir
ve gönderir. Paket rehberi olay türlerini, sınırları ve yeniden deneme
davranışını listeler.

Her entegrasyon için şu adımları uygulayın:

1. Çalışma zamanınız için SDK paketini kurun.
2. Projeye özel alım anahtarını (ingest key) kaynak kontrolünün dışında tutun.
3. Kararlı hizmet, ortam ve sürüm değerleri ayarlayın.
4. Uygulamadan güvenli bir test olayı gönderin.
5. Gönderim sonucunu okuyun. Ardından olayı LogBrew'de bulun.

Kabul edilen bir toplu gönderim LogBrew API'sine ulaşmıştır. Filtreler yine de
olaylarını gizleyebilir. Doğru projeyi ve zaman aralığını seçin. Ardından
hizmeti, ortamı, sürümü ve sinyal türünü eşleştirin.

Yakalamayı açmadan önce [onaylı alanları seçin ve test edin](/tr/guides/safe-capture).
Analizler'i doldurmak için [Ürün olaylarını yakalama](/tr/guides/product-events)
sayfasını izleyin.

## <span id="item-types">Sinyaller ve ortak bağlam</span>

İlk beş kart sinyaldir. Sürüm ve ortam bu sinyallerin bağlamıdır. Ayrı bir olay
türü değildir.

<CardGroup cols={2}>
  <Card title="log" icon="file-text">
    Önem düzeyi, kaynak, zaman ve güvenli bağlam içeren yapılandırılmış bir
    mesaj.
  </Card>

  <Card title="trace_span" icon="route">
    İz ve span kimlikleriyle izine bağlanan, süresi ölçülmüş tek bir işlem.
  </Card>

  <Card title="issue" icon="bug">
    Yakalanan bir hata, önem düzeyi ve uygulamanın gönderdiği hata ayrıntıları.
  </Card>

  <Card title="action" icon="mouse-pointer-click">
    Uygulamanızdaki bir aksiyon; isteğe bağlı özne, oturum ve güvenli
    özelliklerle.
  </Card>

  <Card title="metric" icon="chart-line">
    Adı, türü, değeri, birimi ve zamansallığı olan tek bir sayısal ölçüm.
  </Card>

  <Card title="release ve environment" icon="tags">
    Aynı SDK kapsamındaki sonraki olaylara eklenen kod sürümü ve ortam.
  </Card>
</CardGroup>

## Önem düzeyi değerleri

Loglar ve sorunlar için `info`, `warning`, `error` veya `critical` kullanın.
SDK'lar ve çalışma zamanları `trace`, `debug`, `warn` veya `fatal` gibi takma
adlar gönderebilir. LogBrew kabul edilen takma adları standart değerlere
dönüştürür.

## Paket yöneticisiyle kurulum

Telemetri gönderen çalışma zamanı için SDK paketini kurun. LogBrew'ün verdiği
projeye özel SDK veya veri alımı yapılandırmasını kullanın. Hesap giriş
bilgilerini SDK yapılandırması olarak kullanmayın.

| Çalışma zamanı | Kurulum |
| - | - |
| JavaScript | `npm install @logbrew/sdk` |
| Tarayıcı | `npm install @logbrew/sdk @logbrew/browser` |
| Node.js | `npm install @logbrew/sdk @logbrew/node` |
| Express | `npm install @logbrew/sdk @logbrew/node @logbrew/express` |
| Fastify | `npm install @logbrew/sdk @logbrew/node @logbrew/fastify` |
| NestJS | `npm install @logbrew/sdk @logbrew/node @logbrew/nestjs` |
| React | `npm install @logbrew/sdk @logbrew/browser @logbrew/react` |
| Next.js | `npm install @logbrew/sdk @logbrew/node @logbrew/next` |
| Angular | `npm install @logbrew/sdk @logbrew/angular` |
| Vue | `npm install @logbrew/sdk @logbrew/vue` |
| Svelte | `npm install @logbrew/sdk @logbrew/browser @logbrew/svelte` |
| [React Native](/tr/guides/react-native) | `npm install @logbrew/sdk @logbrew/react-native` |
| Python | `python3 -m pip install logbrew-sdk` |
| FastAPI | `python3 -m pip install logbrew-fastapi` |
| Flask | `python3 -m pip install "logbrew-flask>=0.1.5,<0.2"` |
| Django | `python3 -m pip install logbrew-django` |
| Swift / Apple | `https://github.com/LogBrewCo/sdk.git` adresini SwiftPM ile ekleyin. |
| PHP | `composer require logbrew/sdk:^0.1.1` |
| Ruby | `gem install logbrew-sdk` |
| Go | `go get github.com/LogBrewCo/sdk/go/logbrew@latest` |
| Rust | `cargo add logbrew` |
| Java / Spring | Maven Central'dan `co.logbrew:logbrew-sdk:0.1.10` ekleyin. |
| .NET | `dotnet add package LogBrew --version 0.1.7` |
| ASP.NET Core | `dotnet add package LogBrew.AspNetCore --version 0.1.2` |
| C++ / CMake | CMake `FetchContent` ile `cpp/logbrew-cpp/v0.2.3` sürümünü sabitleyin. |

### Node.js istek izleme

İstek kökü iz ilişkisi için `@logbrew/sdk` 0.1.16 veya üstünü ve
`@logbrew/node` 0.1.11 veya üstünü kullanın.

Express için `@logbrew/express` 0.1.5 veya üstü gerekir. Fastify ve NestJS
için kendi LogBrew paketlerinin 0.1.6 veya üstü gerekir.

Bu entegrasyonlar bir istek span'i oluşturur veya mevcut olanı sürdürür. Span
adı, eşleşen rota şablonunu kullanır. İstek içindeki loglar, sorunlar,
aksiyonlar ve metrikler isteğin iz ve span bağlamını devralır. Daha yeni bir
paket, yükseltmeden önce gönderilen olaylara bağlam eklemez.

Varsayılan istek entegrasyonu istek veya yanıt gövdelerini, sorgu dizelerini,
rastgele başlıkları veya ham `traceparent` değerlerini yakalamaz.

### ASP.NET Core

CLI v0.1.55 veya üstü, `Microsoft.NET.Sdk.Web` kullanan .NET 10 projelerini
algılar. Kurulum planını proje kökünden önizleyin. Bu komut dosyalarınızı
değiştirmez:

```bash theme={null}
logbrew setup --json
```

Yayımlanan plan, host entegrasyonunu kurar:

```bash theme={null}
dotnet add package LogBrew.AspNetCore --version 0.1.2
```

`LOGBREW_SERVER_API_KEY`, `LOGBREW_SERVICE_NAME`, `LOGBREW_ENVIRONMENT` ve
`LOGBREW_RELEASE` değerlerini kaynak kontrolünün dışında ayarlayın. LogBrew'ü
host'a kaydedin ve ara yazılımını yönlendirmeden sonra yerleştirin:

```csharp theme={null}
using LogBrew;

var builder = WebApplication.CreateBuilder(args);
builder.AddLogBrew();

var app = builder.Build();
app.UseRouting();
app.UseLogBrew();
app.MapGet("/", () => "ok");
app.Run();
```

`LOGBREW_SERVER_API_KEY` yoksa iki kayıt çağrısı da güvenli şekilde hiçbir şey
yapmaz. [ASP.NET Core NuGet paketi](https://www.nuget.org/packages/LogBrew.AspNetCore/0.1.2),
yayımlanan host entegrasyonunu tanımlar. Herkese açık paket rehberi; host
yaşam döngüsünü, istek yakalamayı, sorun yakalamayı, gizlilik sınırlarını ve
kurtarmayı anlatır.

### Maven veya Gradle ile Java

CLI v0.1.54 veya üstü `pom.xml`, `build.gradle` ve `build.gradle.kts`
dosyalarını algılar. Kurulum planını proje kökünden önizleyin. Bu komut
dosyalarınızı değiştirmez:

```bash theme={null}
logbrew setup --json
```

Maven için yayımlanan paketi ekleyin:

```xml theme={null}
<dependency>
  <groupId>co.logbrew</groupId>
  <artifactId>logbrew-sdk</artifactId>
  <version>0.1.10</version>
</dependency>
```

Gradle Kotlin DSL için aynı Maven Central paketini ekleyin:

```kotlin theme={null}
implementation("co.logbrew:logbrew-sdk:0.1.10")
```

Java 11 veya üstünü kullanın.

Spring Boot 3 ve 4 uygulamaları, uygulamanın sahip olduğu bir
`LogBrewClient` bean'i sunabilir. Bu bean isteğe bağlı istek, istisna, HTTP
istemcisi, JDBC ve önbellek entegrasyonlarını etkinleştirir.

Spring Kafka yakalama yalnızca `logbrew.kafka.enabled=true` ile açıkça
etkinleştirildiğinde çalışır. Uygulamanın mevcut Spring Kafka bağımlılığını ve
istemci bean'ini kullanır.

[Maven Central'daki Java SDK paketi](https://central.sonatype.com/artifact/co.logbrew/logbrew-sdk/0.1.10)
yayımlanan paketi tanımlar. Herkese açık rehberi; sınırlı HTTP gönderimini,
kapatmayı, loglamayı, Spring yapılandırmasını, Kafka ilişkisini ve gizlilik
sınırlarını anlatır.

### CMake ile C++

C++ SDK'sı için C++17 ve CMake 3.16 veya üstü gerekir. CLI v0.1.39 veya üstü,
kökteki `CMakeLists.txt` dosyasını algılar. Dosyalarınızı değiştirmeden bu
kurulum planını önizlemek için `logbrew setup --json` komutunu çalıştırın:

```cmake theme={null}
include(FetchContent)
FetchContent_Declare(
  logbrew
  GIT_REPOSITORY https://github.com/LogBrewCo/sdk.git
  GIT_TAG cpp/logbrew-cpp/v0.2.3
  GIT_SHALLOW TRUE
  SOURCE_SUBDIR cpp/logbrew-cpp
)
FetchContent_MakeAvailable(logbrew)

target_link_libraries(your_app PRIVATE LogBrew::LogBrew)
```

Çekirdek hedefin bağımlılığı yoktur. Toplu gönderimleri isteğe bağlı libcurl taşıyıcısı
üzerinden göndermek için yukarıdaki son `FetchContent_MakeAvailable`
çağrısını ve hedef bağlantısını şununla değiştirin:

```cmake theme={null}
set(LOGBREW_BUILD_HTTP_TRANSPORT ON CACHE BOOL "" FORCE)
FetchContent_MakeAvailable(logbrew)
target_link_libraries(your_app PRIVATE LogBrew::HttpTransport)
```

Uygulamayı yapılandırın. Ardından seçilen SDK sürümünü test etmek için
derleyin:

```bash theme={null}
cmake -S . -B build &&
cmake --build build
```

SDK monorepo'sunu indiremeyen derlemeler için
[C++ 0.2.3 sürümündeki](https://github.com/LogBrewCo/sdk/releases/tag/cpp/logbrew-cpp/v0.2.3)
`logbrew-cpp-0.2.3.tar.gz` dosyasını kullanın. Açılan paket `cmake --install`
ve `find_package(LogBrew 0.2.3 CONFIG REQUIRED)` destekler. Paket rehberi;
tipli bağlamı, sorun kanıtını, span olaylarını, metrikleri, aksiyonları ve HTTP
gönderimini anlatır.

### JavaScript source map'leri

Vite derlemeleri için [JavaScript source map'leri](/tr/guides/source-maps)
sayfasını izleyin. Sayfa eklentiyi, derleme dosyası anahtarını, yükleme
kontrollerini ve orijinal kaynak konumlarını gösteren yeni bir sorunu anlatır.

### Apple, Flask ve React Native

Telemetri için `LogBrew` Swift ürününü kullanın. `LogBrewCrash` ürününü
yalnızca Apple çökme veya donma yakalama için ekleyin. dSYM yükleme ve
barındırılan sembolleştirme için
[Apple çökmelerini ve donmalarını yakalayın](/tr/guides/apple-crashes-and-hangs)
sayfasını izleyin.

Flask için [Flask'ı kurun](/tr/guides/flask) sayfasını izleyin.

React Native ve Expo için [React Native](/tr/guides/react-native) sayfasını
izleyin. Sayfa proje anahtarını, güvenli bir test logunu, gönderim hatalarını
ve production source map'leri için Expo Metro yapılandırmasını anlatır.

## <span id="javascript-queue-tracing">JavaScript kuyruk izleme</span>

Node kuyruk entegrasyonları ayrı npm paketleridir. Temel LogBrew JavaScript
paketlerini, entegrasyon paketini ve uygulamanızın zaten kullandığı kuyruk veya
broker istemcisini kurun.

| Kuyruk veya broker | Kurulum |
| - | - |
| BullMQ | `npm install @logbrew/sdk @logbrew/node @logbrew/bullmq bullmq` |
| KafkaJS | `npm install @logbrew/sdk @logbrew/node @logbrew/kafkajs kafkajs` |
| RabbitMQ / amqplib | `npm install @logbrew/sdk @logbrew/node @logbrew/amqplib amqplib` |
| Amazon SQS | `npm install @logbrew/sdk @logbrew/node @logbrew/aws-sqs @aws-sdk/client-sqs` |

Bu paketleri, seçtiğiniz kuyruk çağrıları etrafında uygulamanın açıkça
yönettiği iz ilişkisi için kullanın. LogBrew broker bağlantınızı yönetmez,
kuyruk oluşturmaz ve varsayılan olarak tüm istemcileri genel olarak
değiştirmez.

<Warning>
  Kuyruk mesajlarının içeriğini, rastgele mesaj başlıklarını, broker URL'lerini ve oturum
  veya hesap bearer değerlerini SDK yapılandırmasının dışında tutun.
  LogBrew'ün verdiği projeye özel sunucu veri alımı yapılandırmasını kullanın.
</Warning>

## <span id="required-envelope-fields">Doğrudan yerel zarf</span>

`POST /api/telemetry/ingest` uç noktasını yalnızca hiçbir herkese açık LogBrew
SDK'sının desteklemediği özel bir istemci için kullanın. Herkese açık SDK'lar
kendi toplu gönderim biçimlerini kullanır. Bu uç nokta o biçimi kabul etmez.

Tek bir yerel zarfta 1 ile 512 arasında öğe gönderin. Bir zarftaki tüm öğeler
projeyi, hizmeti, sürümü, ortamı ve isteğe bağlı iz bağlamını paylaşır.

| Alan | Zorunlu | Notlar |
| - | - | - |
| `project_id` | Evet | LogBrew projesinin UUID değeri. Alım anahtarının projesiyle eşleşmelidir. |
| `environment` | Evet | Dağıtım ortamı. En fazla 64 karakter; boşluk, `/` veya `\` içeremez. `None` değeri reddedilir. |
| `release` | Evet | Kod sürümü. En fazla 200 karakter; `/`, `\`, sekme veya satır sonu içeremez. `.` veya `..` olamaz. |
| `service_name` | Evet | `checkout-api` gibi mantıksal hizmet adı. Boş olamaz. |
| `sdk_name` | Evet | SDK veya özel istemci tanımlayıcısı. |
| `sdk_version` | Evet | SDK veya özel istemci sürümü. |
| `items` | Evet | 1 ile 512 arasında `log`, `trace_span`, `issue` veya `action` öğesi. |
| `trace_id` | Hayır | İlişkili zarf öğelerinin paylaştığı iz kimliği. Bir öğede `span_id` varsa zorunludur. |

### Öğe alanları

Her öğenin bir `type` alanı ve bir `data` nesnesi vardır. Log öğesi `level`
kullanır. Sorun öğesi `severity` kullanır. İkisi de
[Önem düzeyi değerleri](/tr/concepts/telemetry#severity-values) bölümündeki
değerleri kabul eder.

| Öğe alanı | Geçerli olduğu öğeler | Notlar |
| - | - | - |
| `id` | Tüm öğeler | İsteğe bağlı istemci olay kimliği. 1 ile 200 arasında karakter, zarf içinde benzersiz. |
| `span_id` | `log`, `issue`, `action` | İsteğe bağlı. Tamamı sıfır olmayan 16 onaltılık karakter. Zarfta `trace_id` olmalıdır. |
| `name` | `action` | Zorunlu. En fazla 64 UTF-8 bayt. `$` ile başlayamaz, boşlukla başlayıp bitemez, kontrol veya görünmez biçimlendirme karakterleri içeremez. |

İstemciniz yeniden deneyebiliyorsa her öğeyle bir `id` gönderin. Yeniden deneme,
kabul edilmiş bir öğeyi aynı `id` ve içerikle tekrar gönderirse LogBrew onu
yeniden saklamaz. Yanıt bu öğeyi `already_accepted` içinde sayar.

### Örnek istek

Aşağıdaki JSON'u `telemetry-envelope.json` olarak kaydedin. Örnek proje
kimliğini alım anahtarınızın tam proje kimliğiyle değiştirin. Zaman
damgalarını test olayının şu anki UTC zamanına ayarlayın. Kendi hizmet ve
sürüm değerlerinizi kullanın.

```json telemetry-envelope.json theme={null}
{
  "project_id": "11111111-1111-4111-8111-111111111111",
  "environment": "production",
  "release": "api@1.2.3",
  "service_name": "checkout-api",
  "sdk_name": "custom-native-client",
  "sdk_version": "1.0.0",
  "items": [
    {
      "type": "log",
      "data": {
        "id": "evt_example_log_0001",
        "level": "warning",
        "message": "checkout retry scheduled",
        "source": "runtime",
        "attributes": { "route": "/checkout" },
        "occurred_at": "2026-06-01T12:00:00Z"
      }
    },
    {
      "type": "action",
      "data": {
        "id": "evt_example_action_0001",
        "name": "checkout_failed",
        "distinct_id": "user_123",
        "session_id": "session_456",
        "occurred_at": "2026-06-01T12:00:00Z",
        "properties": { "cart_total": 4200 }
      }
    }
  ]
}
```

Projeye özel alım değerini korumalı yapılandırmanız üzerinden
`LOGBREW_INGEST_BEARER` değişkenine aktarın. Bu değeri yazdırmayın ve hesap
kimlik bilgisi kullanmayın. Aşağıdaki komut dosyayı bir kez gönderir. curl
7.76.0 veya üstü gerekir:

```bash theme={null}
: "${LOGBREW_INGEST_BEARER:?load the project-scoped ingest key}" &&
curl --fail-with-body --silent --show-error \
  "https://api.logbrew.co/api/telemetry/ingest" \
  -H "Authorization: Bearer $LOGBREW_INGEST_BEARER" \
  -H "Content-Type: application/json" \
  --data-binary @telemetry-envelope.json \
  --write-out '\nHTTP %{http_code}\n'
```

HTTP durumunu ve gövdeyi okuyun. `--fail-with-body`, hata gövdesini korur ve
HTTP hatalarında sıfır olmayan bir çıkış durumu döndürür. Ağ hatası veya zaman
aşımı, LogBrew'ün isteği kabul edip etmediğini söylemez. Aynı dosyayı yalnızca
öğelerinde `id` değerleri varsa yeniden gönderin. `id` değerleri olmadan ikinci
gönderim öğeleri iki kez saklayabilir.

### Yanıt

Başarılı bir istek, yeni öğelerin akışa göre sayılarıyla birlikte `200`
döndürür. `already_accepted`, önceki bir isteğin zaten gönderdiği öğeleri
sayar.

```json theme={null}
{
  "issues": 0,
  "logs": 1,
  "trace_spans": 0,
  "actions": 1,
  "already_accepted": 0,
  "next": "review accepted telemetry in logs, issues, traces, actions, or live feed",
  "next_action": {
    "code": "review_ingested_telemetry",
    "target": "telemetry_reads"
  }
}
```

### Hatalar

Geçersiz veya iptal edilmiş bir alım anahtarı `401` döndürür. Başka bir
projenin anahtarı da `401` döndürür:

```json theme={null}
{
  "error": "Invalid ingest key",
  "code": "ingest_key_invalid",
  "next": "create a project-scoped ingest key, then retry ingestion with that key",
  "next_action": {
    "code": "configure_ingest_key",
    "target": "project_ingest_key"
  }
}
```

Projeye özel bir alım anahtarı kullanın. Bunun yerine hesap kimlik bilgisi
kullanmayın. Derleme dosyası (artifact) anahtarı telemetri gönderemez.

Bir alan kuralını ihlal eden zarf, `validation_failed` koduyla `422` döndürür.
`error` alanı kuralı adlandırır. `next` alanı isteği nasıl düzelteceğinizi
söyler. Örneğin `"items": []` şunu döndürür:

```json theme={null}
{
  "error": "native telemetry envelope cannot be empty",
  "code": "validation_failed",
  "next": "send at least one native telemetry item",
  "next_action": {
    "code": "fix_request",
    "target": "request"
  }
}
```

Olay yoksa zarf göndermeyin. 512'den fazla öğe içeren bir zarf,
`native telemetry envelope exceeds the item limit` hatasıyla `422` döndürür.
Zarfı en fazla 512 öğelik toplu gönderimlere bölün. Her toplu gönderimde projeyi ve ortak bağlamı
koruyun.

Kullanım sınırları, hız sınırları ve hizmet hataları için
[API hataları](/tr/reference/api-errors) sayfasında döndürülen `code` değerini
izleyin.

<Tip>
  Sürümü ve ortamı SDK kurulumunda ayarlayın. Her işlem için iz bağlamı
  oluşturun veya mevcut olanı sürdürün. İlgisiz işler için aynı iz kimliğini
  yeniden kullanmayın.
</Tip>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.