npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@hamdi_ozkurt/llm-dashboard-backend

v1.0.5

Published

LLM Usage, Cost and Performance Monitoring - Backend API

Readme

LLM Dashboard Backend - Merkezi LLM İzleme ve Maliyet Yönetimi

Dashboard Genel Görünüm Dashboard Detay

Yapay Zeka (LLM) operasyonlarınızın kalbi: Kullanım oranlarını, model maliyetlerini ve performans metriklerini tek bir merkezden izleyin.

Proje Hakkında

Bu proje, modern uygulamaların vazgeçilmezi haline gelen Büyük Dil Modelleri (LLM - örn. GPT-4, Gemini, Claude) entegrasyonları için gelişmiş bir izleme (monitoring) ve gözlemlenebilirlik (observability) çözümüdür. Uygulamalarınızın LLM sağlayıcılarıyla olan tüm trafiğini kayıt altına alarak; maliyet analizi, performans darboğazlarının tespiti ve kullanım alışkanlıklarının detaylı raporlanmasını sağlar.

Bu backend servisi, verileri toplar, işler ve görselleştirme araçları (frontend dashboard) için hazır hale getirir. Tüm LLM operasyonlarını tek bir noktadan yönetmek isteyen geliştirici ekipleri ve organizasyonlar için tasarlanmıştır.

Proje Yapısı

llm_dashboard/
├── frontend/             # Ön yüz uygulaması (React/Vite)
├── llm-monitor-sdk/      # SDK kütüphanesi
├── server/               # Sunucu kaynak dosyaları (TS)
├── shared/               # Paylaşılan veri tipleri ve sabitler
├── src/                  # Backend uygulama dosyaları (JS)
│   ├── models/           # Veritabanı şemaları ve modelleri
│   ├── routes/           # API endpoint tanımları
│   └── server.js         # Ana sunucu dosyası
├── package.json          # Proje konfigürasyonu ve bağımlılıklar
└── README.md             # Dokümantasyon

Temel Özellikler

  • Session Bazlı İzleme: Konuşma oturumlarını grupla, kullanıcı davranışlarını analiz et. Her mesajı ayrı değil, anlamlı konuşmalar olarak takip et.
  • Detaylı Maliyet Analizi: Proje, sağlayıcı (OpenAI, Google vb.) ve model bazlı harcamalarınızı gerçek zamanlı takip edin. Hangi özelliğin ne kadar maliyet oluşturduğunu net bir şekilde görün.
  • Performans ve Latency Takibi: İsteklerin yanıt sürelerini izleyin, yavaşlayan modelleri veya anormal gecikmeleri anında tespit ederek kullanıcı deneyimini iyileştirin.
  • Token Kullanım İstatistikleri: Prompt (girdi) ve Completion (çıktı) token sayılarını ayrıştırarak model kullanım yoğunluğunu analiz edin.
  • Hata ve Güvenilirlik İzleme: API hatalarını, timeout durumlarını ve başarısız istekleri yakalayarak sisteminizin stabilitesini koruyun.
  • Gerçek Zamanlı Akış: WebSocket desteği sayesinde gerçekleşen LLM çağrılarını anlık olarak dashboard üzerinden izleyin.

Kurulum (NPM ile)

Bu projeyi Node.js uygulamalarınıza entegre etmek veya servisi sunucunuzda çalıştırmak için NPM paket yöneticisini kullanabilirsiniz.

NPM Version NPM Profile

npm install @hamdi_ozkurt/llm-dashboard-backend

Faydalı Linkler:

Yapılandırma ve Başlatma

Kurulumdan sonra servisi ayağa kaldırmak için aşağıdaki adımları izleyin.

1. Veritabanı Bağlantısı

Uygulama, verileri saklamak için MongoDB kullanır. Yerel bilgisayarınızda veya bulutta (MongoDB Atlas) çalışan bir MongoDB bağlantı adresine ihtiyacınız vardır.

# Windows (MongoDB Community kurulu ise)
net start MongoDB

2. Ortam Değişkenleri (.env)

Proje kök dizininde bir .env dosyası oluşturun ve aşağıdaki ayarları yapın:

PORT=3000
MONGODB_URI=mongodb://localhost:27017/llm_dashboard
NODE_ENV=production
GEMINI_API_KEY=your_gemini_api_key_here

3. Servisi Başlatma

# Geliştirme modu
npm run dev

# Canlı ortam (Production)
npm start

Session Bazlı İzleme Sistemi

Session Analizi

Session sistemi, her LLM çağrısını bağımsız log olarak değil, anlamlı konuşma oturumları olarak gruplar.

Faydaları

  • Konuşma Bağlamı: Hangi mesajların aynı konuşmaya ait olduğunu görün
  • Kullanıcı Analizi: Ortalama mesaj sayısı, konuşma süresi, kullanıcı davranışları
  • Maliyet Optimizasyonu: Session bazında maliyet analizi ($0.03/session)
  • Performans İzleme: Session bazında toplam süre ve yanıt süreleri
  • Debugging: Tüm konuşma geçmişini bir arada görün

Neden User ID Kullanmalısınız? (Geliştiriciler İçin)

Bu sistemin en güçlü yanı, userId parametresi ile sağladığı kişiselleştirilmiş izleme yeteneğidir. Kendi projenizdeki kullanıcıların (son kullanıcıların) ID'lerini SDK'ya ileterek şunları kazanısınız:

  1. Müvekkil/Müşteri Bazlı Debugging: Müşteriniz "Botunuz bana yanlış cevap verdi" dediğinde, Dashboard'a girip o müşterinin userId'sini aratarak, yaşadığı tüm konuşma geçmişini ve hatanın kaynağını (Prompt mu, Model mi?) saniyeler içinde görebilirsiniz.

  2. Maliyetin Sorumlusunu Bulma: "API kotam neden hemen bitti?" sorusunun cevabı artık gizli değil. Hangi kullanıcınızın veya departmanınızın sistemi en çok kullandığını ve ne kadar maliyet oluşturduğunu tek tıkla tespit edin.

  3. Bot ve Kötü Niyetli Kullanım Tespiti: Olağandışı aktivite gösteren bir userId tespit ettiğinizde, sisteminize zarar gelmeden o kullanıcıyı izleyebilir ve önlem alabilirsiniz.

Özet: userId olmadan bu sadece bir sayaçtır; userId ile ise profesyonel bir müşteri destek ve analiz aracıdır.

Kullanım Örneği (Gemini)

import { GeminiProvider } from '@llm-dashboard/monitor-sdk';
import { v4 as uuidv4 } from 'uuid';

// Session ID oluştur
const sessionId = `session-${uuidv4()}`;

// Provider'ı session bilgisi ile başlat
const llm = new GeminiProvider({
  apiKey: process.env.GEMINI_API_KEY,
  backendUrl: 'http://localhost:3000/api',
  projectId: 'my-chatbot',
  sessionId: sessionId,     // Session ID
  userId: 'user-123',       // Kullanıcı ID
  debug: true
});

// İlk mesaj
const response1 = await llm.generateContent({
  model: 'gemini-2.5-flash',
  prompt: 'Merhaba! Yapay zeka nedir?',
  temperature: 0.7,
  maxOutputTokens: 100
});

// İkinci mesaj (aynı session)
const response2 = await llm.generateContent({
  model: 'gemini-2.5-flash',
  prompt: 'Kullanım alanları nelerdir?',
  temperature: 0.7,
  maxOutputTokens: 100
});

// Session'ı tamamla
await axios.patch(`http://localhost:3000/api/sessions/${sessionId}/complete`);

Test Etme

# Session sistemini test et
node test-session.js

Entegrasyon ve API Kullanımı

Sistemin verileri analiz edebilmesi için, client veya server tarafındaki uygulamalarınızın yaptığı LLM çağrılarını bu backend servisine iletmesi gerekmektedir.

API Endpoints

Bu servis, verileri toplamak ve raporlamak için aşağıdaki ana erişim noktalarını sunar:

  • POST /api/logs - LLM çağrısı kaydı
  • GET /api/logs - Log listesi (filtreleme)
  • GET /api/metrics - Maliyet ve performans metrikleri
  • POST /api/sessions - Yeni session oluştur
  • POST /api/sessions/:id/messages - Session'a mesaj ekle
  • GET /api/sessions - Session listesi
  • GET /api/sessions/:id - Session detayları
  • PATCH /api/sessions/:id/complete - Session'ı tamamla
  • GET /api/sessions/stats/summary - Session istatistikleri

Gerçek Zamanlı İzleme (WebSocket)

Panel üzerindeki veriler canlı olarak akar.

const socket = io("http://localhost:3000");

// Yeni log bildirimi
socket.on("new-log", (log) => {
  console.log("Yeni LLM kullanımı:", log);
});

// Session güncellemesi
socket.on("session-updated", (session) => {
  console.log("Session güncellendi:", session);
});

Dashboard Görünümleri

Arayüz Detayları

  • Dashboard: Genel bakış ve metrikler
  • Requests: Tüm LLM çağrıları
  • Models: Model bazlı analiz
  • Sessions: Konuşma oturumları (YENİ!)
  • Analytics: Detaylı analizler
  • Settings: Ayarlar ve yapılandırma

Lisans

ISC