Senaryoda her zaman geç kalan IT yöneticisi
Perşembe sabahı 09:40, CFO toplantıya çağırdı: "ShamashAi lisans yenileme teklifi gelmiş, 150 cihaz yazmışlar ama biz geçen yıl 120 cihazlık paket almıştık. Şu an kaç cihaz izliyoruz? Yeni ERP sunucusu, yeni VPN gateway ekledik mi? Disk kapasitesi yetecek mi 12 ay daha — yoksa aboneliği yükseltmeli miyiz?" Senin elinde ise sadece eski bir Excel tablosu ve üç aydır güncellemediğin network envanteri. ShamashAi arayüzüne girip manuel sayarsın: 147 device gösteriyor, ama bunların kaçı aktif event gönderiyor? Kaçı idle? EPS ortalaması ne — trafik patlaması yaşayacak mıyız?
events tablosu şu an 420 GB, ama retention 180 gün — bu hızda disk ne zaman dolacak? Tüm bu soruları elle toplamak 2 saat sürüyor, toplantı ise 30 dakika sonra.
Bu senaryo Türkiye'deki orta ölçekli IT ekiplerinde sıkça yaşanır: SIEM var, log toplanıyor, ama
operasyonel istatistikler dağınık. Lisans yenileme zamanı yaklaştığında IT Manager ve CFO aynı soruları sorar; cevap vermek için ise manuel SQL sorgusu, Excel pivotu ve tahmin oyunları gerekir. ShamashAi
Usage & Capacity özelliği tam da bu problemi çözmek için tasarlandı: lisans kullanımı, cihaz sayısı, event ingest hızı (EPS), disk doluluk oranı ve öngörüsünü
tek bir API endpointten JSON formatında sunar.
ShamashAi Usage & Capacity nedir?
GET /operations/usage-capacity endpoint'i, ShamashAi'nin
operasyonel sağlık durumunu ve
kapasite metriklerini raporlar. Bu rapor şu bileşenlerden oluşur:
1. Cihaz ve site sayısı (devices & sites)
usage.devices.count: Sistemde tanımlı toplam cihaz sayısı (agent'lı endpoint, agentless SNMP switch, vb.).
license.max_devices: Lisans limitiniz (örn. 150 cihaz).
usage.sites.count: Tanımlı site sayısı (merkez, şube, uzak ofis).
Bu sayede
kaç cihaz kaldı sorusu anında cevaplanır:
150 - 147 = 3 slot kaldı.
2. Event ingest hızı (EPS)
usage.ingest.eps_avg_1h: Son 1 saatteki ortalama events per second.
usage.ingest.eps_avg_24h: Son 24 saatteki ortalama.
usage.ingest.eps_avg_7d: Son 7 günlük ortalama.
Örneğin:
{
"usage": {
"ingest": {
"eps_avg_1h": 320,
"eps_avg_24h": 285,
"eps_avg_7d": 270
}
}
}
Bu,
trafik patlaması (örn. port taraması, DDoS, yedekleme pencereleri) tespit etmenizi sağlar. 1h değeri 24h'den %12 yüksekse, o an yoğun bir olay var demektir.
3. Disk kullanımı ve öngörü
usage.storage.events_size_mb: dbo.events tablosunun güncel boyutu (MB).
usage.storage.retention_days: ShamashAi yapılandırmasında tanımlı retention (örn. 180 gün).
usage.storage.projected_full_at: Mevcut günlük ingest hızına göre diskin dolacağı tarih (ISO 8601 formatında).
Örneğin:
{
"usage": {
"storage": {
"events_size_mb": 430080,
"retention_days": 180,
"projected_full_at": "2027-02-14T00:00:00Z"
}
}
}
Bu,
5,5 ay sonra disk dolacak anlamına gelir. IT yöneticisi bu veriyle CFO'ya "Mart 2027'ye kadar yeni disk eklememiz gerekecek" diyebilir.
4. Lisans yenileme alarmı
license.expires_at: Lisansınızın bitiş tarihi.
- ShamashAi, bitiş tarihine 30 gün kaldığında Usage & Capacity raporunda
renewal_alert: true bayrağı döndürür.
Örnek:
{
"license": {
"expires_at": "2026-10-01T00:00:00Z",
"max_devices": 150,
"renewal_alert": true
}
}
2026-09-01'de (30 gün önceden) bu bayrak aktif hale gelir. Böylece IT yöneticisi lisans yenileme sürecini zamanında başlatabilir.
Neden bu önemlidir?
1. Lisans yönetimi kaotik olabilir
Orta ölçekli firmalarda cihaz envanteri dinamiktir: yeni laptop alındı, eski sunucu devre dışı bırakıldı, şube açıldı. ShamashAi'ye bağlı cihaz sayısı sürekli değişir. Lisans yenileme döneminde tedarikçi "160 cihazlık paket önereceğiz" dediğinde, IT Manager'ın elinde
güncel sayı olmazsa ya fazla ödeme yapar ya da yetersiz lisans alıp aşım cezası öder.
2. Disk doluluk krizi beklenmedik gelir
SIEM sistemleri genelde event tablosunda yüzlerce GB veri tutar. Disk alanı dolduğunda:
- Log kaybı yaşanır (yeni event yazılamaz).
- SQL Server performansı düşer.
- Compliance audit'te "6 ay arşiv eksik" bulgusu çıkar.
ShamashAi
projected_full_at değeri, bu krizi 2-3 ay önceden gösterir. IT yöneticisi bütçe talebini zamanında yapabilir.
3. EPS anomalileri fark edilmeyebilir
Normal günlük EPS 270 iken, aniden 800'e çıkması:
- Yanlış yapılandırılmış firewall (her ping'i logluyoruz).
- Ransomware lateral movement (çok sayıda SMB connection failure).
Manuel takip edilmediğinde bu anomaliler gözden kaçar.
Usage & Capacity endpoint'i her gün çağrılarak (cron job, Power Automate, vb.) EPS değişimleri izlenebilir.
Teknik uygulama
GET /operations/usage-capacity
Endpoint:
https://shamashai.yourcompany.local/operations/usage-capacity
Authentication: Bearer token (ShamashAi API key'i
dbo.audit_log tablosunda loglanır).
Yanıt örneği:
{
"timestamp": "2026-08-26T09:15:56Z",
"usage": {
"devices": {
"count": 147,
"active_last_24h": 142
},
"sites": {
"count": 8
},
"ingest": {
"eps_avg_1h": 320,
"eps_avg_24h": 285,
"eps_avg_7d": 270
},
"storage": {
"events_size_mb": 430080,
"retention_days": 180,
"projected_full_at": "2027-02-14T00:00:00Z"
}
},
"license": {
"max_devices": 150,
"expires_at": "2026-10-01T00:00:00Z",
"renewal_alert": true
}
}
.NET 8 ile tüketim örneği
ShamashAi API'sini çağırmak için .NET 8 HttpClient kullanabilirsiniz:
csharp
using System.Net.Http.Headers;
using System.Text.Json;
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "YOUR_SHAMASHAI_API_KEY");
var response = await client.GetAsync(
"https://shamashai.yourcompany.local/operations/usage-capacity"
);
if (response.IsSuccessStatusCode)
{
var json = await response.Content.ReadAsStringAsync();
var usage = JsonSerializer.Deserialize<UsageCapacityResponse>(json);
Console.WriteLine($"Cihaz: {usage.Usage.Devices.Count}/{usage.License.MaxDevices}");
Console.WriteLine($"EPS (1h): {usage.Usage.Ingest.EpsAvg1h}");
Console.WriteLine($"Disk dolacak: {usage.Usage.Storage.ProjectedFullAt}");
if (usage.License.RenewalAlert)
{
Console.WriteLine("UYARI: Lisans 30 gün içinde bitiyor!");
}
}
public class UsageCapacityResponse
{
public UsageData Usage { get; set; }
public LicenseData License { get; set; }
}
public class UsageData
{
public DeviceData Devices { get; set; }
public SiteData Sites { get; set; }
public IngestData Ingest { get; set; }
public StorageData Storage { get; set; }
}
public class DeviceData
{
public int Count { get; set; }
public int ActiveLast24h { get; set; }
}
public class SiteData
{
public int Count { get; set; }
}
public class IngestData
{
public int EpsAvg1h { get; set; }
public int EpsAvg24h { get; set; }
public int EpsAvg7d { get; set; }
}
public class StorageData
{
public long EventsSizeMb { get; set; }
public int RetentionDays { get; set; }
public DateTime ProjectedFullAt { get; set; }
}
public class LicenseData
{
public int MaxDevices { get; set; }
public DateTime ExpiresAt { get; set; }
public bool RenewalAlert { get; set; }
}
Node.js Fastify ile tüketim örneği
ShamashAi backend'i Node.js Fastify üzerine kurulu; entegrasyon script'i de Fastify ile yazılabilir:
javascript
const axios = require('axios');
const apiKey = 'YOUR_SHAMASHAI_API_KEY';
const baseUrl = 'https://shamashai.yourcompany.local';
async function getUsageCapacity() {
try {
const response = await axios.get(
${baseUrl}/operations/usage-capacity, {
headers: { Authorization:
Bearer ${apiKey} }
});
const { usage, license } = response.data;
console.log(
Cihaz: ${usage.devices.count}/${license.max_devices});
console.log(
EPS (1h): ${usage.ingest.eps_avg_1h});
console.log(
Disk dolacak: ${usage.storage.projected_full_at});
if (license.renewal_alert) {
console.log('UYARI: Lisans 30 gün içinde bitiyor!');
}
// Eğer EPS anormal yüksekse uyarı
if (usage.ingest.eps_avg_1h > usage.ingest.eps_avg_24h * 1.3) {
console.log('UYARI: EPS son 1 saatte %30+ artmış, anormal trafik var!');
}
} catch (err) {
console.error('Hata:', err.message);
}
}
getUsageCapacity();
SQL Server üzerinden doğrudan sorgulama
ShamashAi backend'i, capacity hesaplamalarını
dbo.devices,
dbo.events,
dbo.sites tablolarından yapar. Eğer API erişiminiz yoksa (örn. read-only DBA hesabı varsa), doğrudan SQL sorgusu çalıştırabilirsiniz:
sql
-- Cihaz sayısı
SELECT COUNT(*) AS device_count
FROM dbo.devices
WHERE is_active = 1;
-- Son 24h içinde event gönderen cihazlar
SELECT COUNT(DISTINCT device_id) AS active_devices
FROM dbo.events
WHERE timestamp >= DATEADD(hour, -24, GETUTCDATE());
-- Site sayısı
SELECT COUNT(*) AS site_count
FROM dbo.sites;
-- Event tablosu boyutu (MB)
SELECT
SUM(reserved_page_count) * 8 / 1024 AS size_mb
FROM sys.dm_db_partition_stats
WHERE object_id = OBJECT_ID('dbo.events');
-- Son 1 saatteki ortalama EPS
SELECT
COUNT(*) / 3600.0 AS eps_avg_1h
FROM dbo.events
WHERE timestamp >= DATEADD(hour, -1, GETUTCDATE());
Ancak
projected_full_at hesabı için retention ve günlük büyüme oranı gerekir; bu mantık ShamashAi backend'inde kodlanmıştır. SQL'den doğrudan almak karmaşıktır.
Gerçek dünya kullanım senaryoları
Senaryo 1: CFO toplantısı öncesi rapor
IT Manager her ay ilk Pazartesi CFO ile operasyonel bütçe toplantısı yapar. Toplantıdan 10 dakika önce
GET /operations/usage-capacity çağrısı yaparak:
- "147/150 cihaz, 3 slot kaldı" → yeni laptop talebini geciktir.
- "Disk 5,5 ay sonra dolacak" → Q1 bütçesine 2 TB SSD ekle.
- "Lisans 35 gün sonra bitiyor" → tedarikçi ile yenileme görüşmesi planla.
Toplantıda bu verileri paylaşarak
proaktif görünüm sergiler.
Senaryo 2: Haftalık EPS anomali kontrolü
IT ekibi her Pazartesi sabahı şu Node.js script'i çalıştırır:
javascript
if (usage.ingest.eps_avg_1h > usage.ingest.eps_avg_7d * 1.5) {
await axios.post('https://slack.com/api/chat.postMessage', {
channel: '#infra-alerts',
text:
⚠️ EPS anormal yüksek: ${usage.ingest.eps_avg_1h} (7d ort: ${usage.ingest.eps_avg_7d})
}, {
headers: { Authorization:
Bearer ${SLACK_TOKEN} }
});
}
Bu sayede weekend'de yaşanan bir port tarama saldırısı Pazartesi sabahı fark edilir.
Senaryo 3: Lisans aşım riski erken uyarısı
ShamashAi 150 cihazlık lisansa sahip. 145. cihaz eklendiğinde (147'ye çıktığında), IT Manager API'den
usage.devices.count değerini her gün kontrol eder:
csharp
if (usage.Usage.Devices.Count >= usage.License.MaxDevices * 0.95)
{
// %95 doluluk: uyarı gönder
SendEmailAlert("ShamashAi lisansı %95 dolu, yenileme gerekebilir");
}
Böylece lisans aşımı cezası riskini ortadan kaldırır.
Limitler ve dürüst notlar
- Projected_full_at tahmini lineerdir: Eğer event ingest hızı mevsimsel değişkenlik gösteriyorsa (örn. yaz aylarında yarı yarıya düşüyorsa), tahmin yanlış olabilir. ShamashAi şu an trend analizi yapmıyor; sabit günlük büyüme varsayar.
- Site sayısı sadece tanımlı site objelerini sayar: Eğer siz sitelerinizi ShamashAi'de modellemediyseniz (tüm cihazları "Default" site'ta bıraktıysanız),
usage.sites.count her zaman 1 döner.
- Active_last_24h metriği her cihaz tipini ayırt etmez: Agentless SNMP switch 24 saatte 1 trap gönderebilir ama yine de "aktif" sayılır. Gerçek agent sağlığı için ayrı
/agents/health endpoint'i kullanılmalıdır.
- Disk öngörüsü sadece events tablosunu kapsar:
dbo.audit_log, dbo.soar_actions, dbo.incident_groups tabloları da disk harcar ama şu an hesaba katılmıyor. Gerçek disk kullanımı %10-15 daha yüksek olabilir.
- Retention değişikliği anında yansımaz: Retention'ı 180'den 90 güne düşürürseniz, eski kayıtlar hemen silinmez. Haftalık purge job'ı çalışana kadar
events_size_mb değişmez.
Sonuç
ShamashAi
Usage & Capacity özelliği, IT yöneticilerine operasyonel görünürlük sağlar: lisans yenileme zamanında kaç cihaz izlendiğini, event ingest hızının normal mi yoksa anormal mi olduğunu, diskin ne zaman dolacağını tek bir API çağrısında öğrenirsiniz. Bu, manuel Excel takibi yerine
proaktif kapasite planlaması demektir. CFO toplantısında "bilmiyorum, kontrol edeyim" yerine "147/150 cihaz, lisans 35 gün sonra bitiyor, disk 5,5 ay yeter" diyebilirsiniz.
Pilot programı 30 gün ücretsiz: shamashai.com.tr/iletisim