Yapılandırma
Orbtrace'in davranışını belirleyen her ayar — ortam değişkenleri, yapay zekâ sağlayıcı, kimlik doğrulama, lisanslama, saklama, örnekleme — gerçek .env.example'a dayalı. Üretim trafiğine açmadan önce okuyun.
Orbtrace'in varsayılanları hızlı başlangıç için yeterli. Üretim trafiğine açmadan önce bu sayfayı bir kez baştan sona okuyun ve her değeri bilinçli olarak ayarlayın. Buradaki her değişken gerçek — gönderilen docker/.env.example ile birebir.
Ayarlar nerede yaşar?
- .env dosyasıContainer başlangıcında okunan ortam değişkenleri: veritabanı bağlantısı, AI sağlayıcı anahtarı, lisansınız, public URL'ler. Birini değiştirmek container restart ister.
- Yönetim arayüzüÇalışırken değiştirdiğiniz şeyler: alarm kuralları, SLO'lar, panolar, aktif AI sağlayıcı/model, servis-başına örnekleme tavanları, saklama pencereleri, kullanıcı rolleri, entegrasyonlar. PostgreSQL'de saklanır; anında etkili.
- docker-compose.yml / values.yamlTopoloji — kaç Doris düğümü, kaynak limitleri, açık portlar, Doris profili. Varsayılan boyutu aştığınızda düzenlersiniz.
İsimlendirme kuralı
Üçüncü taraf bir SDK ya da dış sistem doğrudan okuyorsa → vendor-native ad, ön ek yok (ANTHROPIC_API_KEY, PGHOST, DORIS_USER, REDIS_HOST). Yalnız Orbtrace'in kendi kodu okuyorsa → ORBTRACE_ ön eki (ORBTRACE_SECRET_KEK, ORBTRACE_AI_PROVIDER). Bu yüzden örneğin Doris bağlantı değişkenleri çıplak DORIS_* (Collector da okur) ama HikariCP havuz boyutu ORBTRACE_DORIS_POOL_* (yalnız Orbtrace okur).
Çekirdek
| Değişken | Varsayılan | Ne yapar? |
|---|---|---|
ORBTRACE_DEPLOYMENT_ENV | prod | Orbtrace'in kendi öz-telemetrisine eklenen etiket — bir Doris birden çok Orbtrace dağıtımından sinyal alınca işe yarar. |
ORBTRACE_HTTP_PORT | 8080 | Arayüz + REST API'nin host'ta yayınlandığı port (compose yolu; container her zaman 8080 dinler). Aşağıdaki iki URL değişkeni varsayılan olarak http://localhost:<bu port> değerini alır ve portu otomatik takip eder — yalnızca bir proxy ya da gerçek bir domain arkasındaysanız açıkça ayarlayın. Bundle 2.0.8 ve sonrasında mevcut. |
ORBTRACE_FRONTEND_URL | http://localhost:8080 | Kullanıcıların gittiği public URL. IdP'nizin döneceği OIDC redirect URI'lerini kurmak için kullanılır — kaydettiğinizle eşleşmeli. Proxy arkasında gerçek host'unuza ayarlayın. |
ORBTRACE_BACKEND_URL | http://localhost:8080 | Verilen giriş token'larına gömülü URL (token issuer). Tek-host dağıtımda frontend ile aynı. |
PostgreSQL (ayarlar veritabanı)
libpq-native adlar — Spring çıplak ${PGHOST} vb. okur.
| Değişken | Varsayılan | Ne yapar? |
|---|---|---|
PGHOST | postgres | Servis host adı (compose'da ayarlı). |
PGPORT | 5432 | Port. |
PGDATABASE | orbtrace | Veritabanı adı. |
PGUSER | orbtrace | Kullanıcı. |
PGPASSWORD | change-me-locally — değiştirin | Parola. |
Apache Doris (telemetri veritabanı)
Doris-native adlar — Collector da otelcol-config.yaml'dan aynı ${DORIS_USER} / ${DORIS_PASSWORD}'ü okur.
| Değişken | Varsayılan | Ne yapar? |
|---|---|---|
DORIS_FE_HOST | doris-fe | Frontend host adı (compose'da ayarlı). |
DORIS_FE_QUERY_PORT | 9030 | SELECT sorguları için MySQL-protokol portu. |
DORIS_FE_HTTP_PORT | 8030 | HTTP portu (Stream Load / yönetim). |
DORIS_USER | root | Kullanıcı. |
DORIS_PASSWORD | boş — ayarlayın | Parola. Varsayılan Doris FE parolasız gelir; bir tane ayarlayın ve Collector'ınıza da verin. |
DORIS_DB | orbtrace | Veritabanı adı. |
ORBTRACE_DORIS_MIGRATION_MODE | apply | apply (Orbtrace açılışta Doris şemasını oluşturur/günceller ve bitene kadar readiness'ı bloklar — standart yol), validate (şema bant-dışı bir DBA tarafından uygulanır; Orbtrace açılışta yalnızca doğrular), ya da disabled (atla — yalnız dev). |
ORBTRACE_DORIS_POOL_* | makul | Doris okumaları için HikariCP havuz boyutu (ör. ORBTRACE_DORIS_POOL_MAXIMUM_SIZE). Çok eşzamanlı kullanıcıda yükseltin. Orbtrace Doris'e asla yazmaz — o Collector'ın işi. |
Valkey (önbellek)
| Değişken | Varsayılan | Ne yapar? |
|---|---|---|
REDIS_HOST | valkey | Host adı (compose'da ayarlı). |
REDIS_PORT | 6379 | Port. |
REDIS_PASSWORD | boş | Valkey'niz AUTH istiyorsa ayarlayın. |
Lisans
| Değişken | Varsayılan | Ne yapar? |
|---|---|---|
ORBTRACE_LICENSE_KEY | boş | İmzalı .orblic jeton içeriğinizi buraya yapıştırın ya da ücretsiz COMMUNITY sürümü için boş bırakın. /etc/orbtrace/license.orblic mount edebilir ya da Yönetim → Lisans'tan yükleyebilirsiniz. Tam ayrıntı: Lisanslama. |
AI sağlayıcı (Sebep RCA'sı + Astra + Replay)
ORBTRACE_AI_PROVIDER, AI özelliklerinin hangi LLM'i kullanacağını seçer — citation tutarlılığı için bir seferde tek aktif sağlayıcı. Geçerli değerler: anthropic (varsayılan), openai, azure-openai, google-gemini, ollama, openai-compatible. İlgili kimlik bilgilerini ayarlayın; diğerlerini boş bırakın. Hava boşluklu dağıtımlar ollama ya da kendi barındırdığınız bir openai-compatible sunucu kullanır. Aktif sağlayıcıyı, modeli — ayrıca anahtarları, uç noktaları ve TLS'i — çalışma zamanında Yönetim → AI'dan değiştirebilirsiniz.
| Sağlayıcı | Gereken değişkenler |
|---|---|
anthropic | ANTHROPIC_API_KEY. İsteğe bağlı: ANTHROPIC_BASE_URL. |
openai | OPENAI_API_KEY. İsteğe bağlı: OPENAI_BASE_URL. |
azure-openai | AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT, AZURE_OPENAI_DEPLOYMENT. |
google-gemini | GOOGLE_GENAI_API_KEY (veya Vertex AI için GOOGLE_GENAI_PROJECT_ID + GOOGLE_GENAI_LOCATION). |
ollama | OLLAMA_BASE_URL (ör. http://host.docker.internal:11434). Model arayüzde seçilir. |
openai-compatible | ORBTRACE_AI_OPENAI_COMPATIBLE_BASE_URL (ör. bir vLLM / TGI / LocalAI / LM Studio sunucusu). İsteğe bağlı: ORBTRACE_AI_OPENAI_COMPATIBLE_API_KEY. Temel URL + TLS genelde Yönetim → AI'da ayarlanır. |
Env mi, saklanan mı — neyi restart ister. Yukarıdaki her değer bootstrap ve geri-düşüş (fallback) içindir. Yönetim → AI'dan ayrıca bir API anahtarını (at-rest şifreli) ve on-prem sağlayıcılar (ollama, openai-compatible) için bir temel URL + TLS güveni saklayabilirsiniz — saklanan değer env değişkenini ezer ve anında etkili olur, restart yok. Bir env anahtarını ya da temel URL'sini değiştirmek hâlâ container restart ister. Saklanan anahtarları at-rest şifrelemek için ORBTRACE_SECRET_KEK'i 16/24/32 rastgele baytın base64'üne ayarlayın (ORBTRACE_JWT_KEK ile aynı operatör-sahipli-sır modeli); ayarlı değilken anahtarlar düz metin saklanır ve uyarı loglanır. Saklanan anahtarlar API tarafından asla geri döndürülmez — yönetim ekranı yalnızca bir "saklandı" işareti ve son 4 karakteri gösterir.
AI orkestrasyon knob'ları (hepsi ORBTRACE_AI_* / ORBTRACE_ASTRA_*, hepsi baked-in varsayılanlarla opsiyonel) bütçeleri, failover'ı, yanıt önbelleğini ve Astra asistanının araç-başına limitlerini kapsar — ör. ORBTRACE_AI_BUDGET_ENABLED, ORBTRACE_AI_FAILOVER_ENABLED, ORBTRACE_ASTRA_BUDGET_RESET_INTERVAL. Tam liste için .env.example'daki "Behavioral tuning knobs" bloğuna bakın. Not: vendor kimlik bilgileri vendor-native ad kullanır; ORBTRACE_AI_* yalnız Orbtrace'in kendi orkestrasyonu içindir.
Kimlik doğrulama
Orbtrace kullanıcıları bir kimlik sağlayıcısı (SSO) üzerinden giriş yaptırır. Dört yoldan en az biri için kimlik bilgilerini ayarlayıp yeniden başlatın. Sağlayıcı-başına tam anlatım: Kimlik doğrulama.
| Sağlayıcı | Değişkenler |
|---|---|
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET | |
| Microsoft Entra | MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET, MICROSOFT_TENANT |
| GitHub | GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET |
| Özel OIDC (Keycloak, Authelia, Auth0, Okta, …) | OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_ISSUER_URI, ORBTRACE_OIDC_DISPLAY_NAME |
Literal change-me bırakılan bir client-id açılışta ayıklanır, dolayısıyla düğme hiç görünmez — ayrı bir "etkinleştir" bayrağı ve kırık düğme yoktur.
| Değişken | Varsayılan | Ne yapar? |
|---|---|---|
ORBTRACE_BOOTSTRAP_ADMIN_USERNAME | boş | Dağıtım admin'i olarak sabitlenen e-posta — ADMIN rolüne provisyon edilir (ya da sonraki girişte yükseltilir). Büyük/küçük harf duyarsız; her girişte yeniden uygulanır. SQL ile bootstrap için boş bırakın. |
ORBTRACE_BOOTSTRAP_ADMIN_PASSWORD | boş | Opsiyonel, yalnız deneme. Kullanıcı adının yanında ayarlayın ki yerel bir kullanıcı adı/parola giriş formu da gelsin (IdP gerekmez). Bellekte hash'lenir, asla kalıcılaştırılmaz; kullanıcı adı olmadan parola açılışı durdurur. MFA/lockout yok — üretimde boş bırakın. |
ORBTRACE_OIDC_DISPLAY_NAME | Single Sign-On | Genel OIDC giriş düğmesindeki etiket. |
IdP'nize kaydedeceğiniz redirect URI'si {ORBTRACE_BACKEND_URL}/login/oauth2/code/{provider} olup {provider} şunlardan biridir: google, microsoft, github veya oidc.
Saklama (retention)
İki farklı mekanizma — karıştırmayın:
- Telemetri saklaması (log / trace / metriklerin Doris'te ne kadar kaldığı) bir env değişkeni değildir. Bunu Doris profili belirler (
small/medium/large, Helm'dedoris.profile.activeProfileile ya da Compose image'ına gömülü profil) — ör.smallprofili 7 gün log, 14 gün trace, 30 gün metrik tutar. Bunlarıdoris.profile.retention.*ile (değerler gün cinsinden) ayrıca geçersiz kılabilirsiniz. Doris partition'lar yaşlanınca tüm partition'ı düşürür, böylece disk anında geri kazanılır. Telemetri saklamasını değiştirmek için bir env değişkenini değil, profili değiştirirsiniz. - Operasyonel saklama (audit log + Replay/zaman çizelgesi geçmişi) ayarlanabilir ve ayrıca Yönetim → Saklama'da canlı düzenlenebilir:
| Değişken | Varsayılan | Ne yapar? |
|---|---|---|
ORBTRACE_AUDIT_RETENTION_ENABLED | false | Varsayılan kapalı (SOC2 12 ay ister). Açıkken audit_events'i max-age'den eski olanlardan budar. |
ORBTRACE_AUDIT_RETENTION_CRON | 0 0 3 * * * | Gecelik audit süpürmesinin ne zaman çalışacağı (Spring 6-alan cron, UTC). |
ORBTRACE_REPLAY_RETENTION_CRON | 0 0 3 * * * | Replay/zaman çizelgesi süpürmesinin ne zaman çalışacağı. |
Örnekleme (sampling)
Örnekleme tek bir aç/kapa env değişkeni değildir. İş birliği yapan iki katmandır:
- Collector'ınızın
tail_samplingprocessor'ı tut/at kararını verir ve hard-keep kurallarını uygular — hatalar, p99'dan yavaş trace'ler, yeni yollar, SLO ihlalleri ve anomali-etiketli trace'ler her zaman tutulur. Bunlar Orbtrace'te değil, Collector config'inizde (otelcol-config.yaml) yaşar. - Orbtrace olasılıksal tabanı yayımlar: Yönetim → Örnekleme'de ayarladığınız servis-başına aylık trace-sayısı tavanları. Orbtrace tavana karşı burn-rate hesaplar ve Collector'ınızın tükettiği
/api/sampling/policy.yaml'ı yeniden yayımlar. Bu, Doris diskini korur ve sinyal-gürültü oranını yüksek tutar.
İlgili tek env knob'u ORBTRACE_SAMPLING_SLOW_TRACE_THRESHOLD_MS (varsayılan 1000) — bir trace'in hard-keep için "yavaş" sayıldığı gecikme eşiği.
SLO önerileri
Orbtrace, her servisin kendi gecikme geçmişinden servis-başına bir SLO hedefi önerebilir — hedefi asla otomatik olarak ayarlamaz. Gecelik bir iş, servisin geri-bakış penceresi boyunca altında kaldığı günlük p95'ten öneriyi türetir; ardından bir yönetici SLO ekranında inceleyip Kabul eder (ve oradan istek üzerine yeniden hesaplatabilir). Akış için SLO'lar & alarm'a bakın.
Varsayılan olarak kapalı. İki örnek-kapısı bir sinyal-kalitesi barıdır: bir servisin, geri-bakış içinde en az min usable days takvim günü (her biri en az min daily samples gelen-istek span'iyle) olması gerekir — aksi halde öneri üretilmez, çünkü bir hedefi dürüstçe koymak için geçmiş çok azdır. Varsayılanlar bir üretim filosuna uygundur; yepyeni bir kurulum ya da kısa bir demo tek günde yalnızca birkaç saatlik veriye sahiptir, bu yüzden siz eşikleri düşürene kadar yeniden hesaplama hiçbir şey döndürmez (dev profili bunu zaten yapar, 1 / 5'e indirir).
| Değişken | Varsayılan | Ne yapar? |
|---|---|---|
ORBTRACE_SLO_RECOMMENDATION_ENABLED | false | Gecelik öneri işinin ana anahtarı. Canlı düzenlenebilir. |
ORBTRACE_SLO_RECOMMENDATION_WINDOW_DAYS | 30 | Önerinin türetildiği kayan geri-bakış (gün). Restart'ta etkinleşir. |
ORBTRACE_SLO_RECOMMENDATION_MIN_USABLE_DAYS | 7 | Bir servise hedef önerilmeden önce gereken nitelikli gün sayısı. Yeni ya da düşük-hacimli bir dağıtım için düşürün. |
ORBTRACE_SLO_RECOMMENDATION_MIN_DAILY_SAMPLES | 50 | Bu sayının altında gelen-istek span'i olan bir gün, yukarıdakine sayılamayacak kadar incedir. |
CORS / proxy
| Değişken | Varsayılan | Ne yapar? |
|---|---|---|
ORBTRACE_CORS_DISABLED | false | Yalnızca önündeki bir ters proxy CORS'u zaten hallediyorsa true yapın. |
ORBTRACE_CORS_ORIGIN_PATTERNS | türetilmiş | SPA, API'den farklı bir host'tan sunuluyorsa izin verilen tarayıcı origin'lerini geçersiz kılar. |
İleri seviye davranış knob'ları
Onlarca ince-ayar zamanlaması ve tavanı yeniden derlemeden geçersiz kılınabilir — asenkron-dikiş skor ağırlıkları, anomali-eğitici eşikleri, alarm değerlendirme pencereleri, Doris sorgu/rollup tavanları, log-tail poll kadansı, operasyon percentile floor'ları ve Astra asistanı limitleri. Her birinin çalışan bir varsayılanı vardır, o yüzden ayarlamıyorsanız boş bırakın. Süreler ISO-8601 (PT30S, PT15M, P7D); cron'lar Spring 6-alan. Tam, açıklamalı liste docker/.env.example'ın altındaki "Behavioral tuning knobs" bloğudur.
Minimal bir üretim .env'i
ORBTRACE_FRONTEND_URL=https://orbtrace.example.com
ORBTRACE_BACKEND_URL=https://orbtrace.example.com
PGPASSWORD=<güçlü>
DORIS_PASSWORD=<güçlü>
# Opsiyonel lisans (boş → COMMUNITY sürümü)
ORBTRACE_LICENSE_KEY=
ORBTRACE_AI_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ant-...
# İlk yöneticiyi sabitle (ilk SSO girişinde ADMIN olan e-posta)
ORBTRACE_BOOTSTRAP_ADMIN_USERNAME=siz@example.com
# Keycloak ile kurumsal SSO (ya da Auth0 / Okta / Authelia / Entra OIDC)
OIDC_CLIENT_ID=orbtrace
OIDC_CLIENT_SECRET=<IdP'nizden>
OIDC_ISSUER_URI=https://sso.example.com/realms/eng
ORBTRACE_OIDC_DISPLAY_NAME=Acme SSORestart vs. canlı
.env'deki her şey → etkili olması içindocker compose up -d(ya dakubectl rollout restart) ister.- Yönetim arayüzündeki her şey (alarm kuralları, SLO'lar, örnekleme tavanları, saklama pencereleri, aktif AI sağlayıcı, kullanıcı rolleri) → anında etkili, restart yok.
JWT imzalama anahtarları uygulama tarafından yönetilen RSA'dır — ilk açılışta üretilir ve PostgreSQL'de saklanır; ayarlanacak ya da döndürülecek bir imzalama-sırrı env değişkeni yoktur. Anahtarı POST /api/admin/jwt-keys/rotate ile döndürmek mevcut tüm oturum token'larını geçersiz kılar — herkes tekrar giriş yapar. Kullanıcıya görünür etki yaratan tek değişiklik bu döndürmedir. Politika operatör anahtarı gerektiriyorsa kendi çiftinizi ORBTRACE_JWT_PRIVATE_KEY / ORBTRACE_JWT_PUBLIC_KEY ile sabitleyin.