Die Analyse von API-Logs ist für Unternehmen, die hochfrequente KI-Anwendungen betreiben, von entscheidender Bedeutung. In diesem Tutorial zeige ich Ihnen, wie Sie die HolySheep API中转站 erfolgreich mit dem ELK Stack (Elasticsearch, Logstash, Kibana) integrieren, um eine professionelle Logging-Infrastruktur aufzubauen. Diese Lösung ermöglicht es Ihnen, alle API-Anfragen zentral zu überwachen, Performance-Probleme zu identifizieren und die Kostenoptimierung systematisch voranzutreiben.
HolySheep vs Offizielle API vs Andere Relay-Dienste: Vergleich
| Feature | HolySheep API中转站 | Offizielle API (OpenAI/Anthropic) | Andere Relay-Dienste |
|---|---|---|---|
| Preis pro 1M Tokens (GPT-4.1) | $8.00 | $60.00 | $10-15 |
| Preis pro 1M Tokens (Claude Sonnet 4.5) | $15.00 | $75.00 | $18-25 |
| Latenz | <50ms | 150-300ms | 80-150ms |
| DeepSeek V3.2 | $0.42/MTok | Nicht verfügbar | $0.50-0.80 |
| WeChat/Alipay Support | Ja | Nein | Selten |
| Kostenlose Credits | Ja | Nein | Minimal |
| Native Logging-Integration | Ja, ELK-kompatibel | Basic Logs | Begrenzt |
| Dashboard-Funktionen | Umfangreich | Begrenzt | Mittel |
Warum HolySheep wählen?
Die Wahl von HolySheep API中转站 bietet gegenüber der direkten Nutzung der offiziellen APIs oder anderer Relay-Dienste erhebliche Vorteile. Mit einem Wechselkurs von ¥1=$1 und Ersparnissen von über 85% bei GPT-4.1 und Claude Sonnet 4.5 können Unternehmen ihre KI-Kosten drastisch reduzieren. Die Latenz von unter 50ms sorgt für eine exzellente Benutzererfahrung, während die native ELK-Stack-Integration eine professionelle Überwachung ermöglicht.
Besonders hervorzuheben ist der Support für WeChat und Alipay, der chinesischen Unternehmen den Zugang zu erstklassigen KI-Modellen erleichtert. Die kostenlosen Credits ermöglichen einen risikofreien Einstieg in die API-Nutzung. Mit der integrierten Logging-Funktionalität haben Sie alle Daten direkt verfügbar, um sie in Ihren ELK Stack zu exportieren und umfassende Analysen durchzuführen.
Geeignet / nicht geeignet für
Geeignet für:
- Unternehmen mit hohem API-Volumen, die Kostenoptimierung benötigen
- Entwickler, die eine zentrale Logging-Infrastruktur mit ELK Stack aufbauen möchten
- Chinesische Unternehmen, die WeChat/Alipay-Zahlungen bevorzugen
- Teams, die DeepSeek V3.2 zu sehr günstigen Preisen ($0.42/MTok) nutzen möchten
- Produktionsumgebungen, die Latenz unter 50ms erfordern
- Organisationen, die eine Alternative zu teuren offiziellen APIs suchen
Nicht geeignet für:
- Projekte mit minimalem Volumen, wo Kosten keine Rolle spielen
- Anwendungen, die ausschließlich die neuesten Beta-Features der offiziellen APIs benötigen
- Szenarien, in denen maximale Modellauswahl wichtiger als Kosten ist
Preise und ROI
| Modell | HolySheep Preis | Offizielle API | Ersparnis | ROI bei 10M Tokens/Monat |
|---|---|---|---|---|
| GPT-4.1 | $8.00/MTok | $60.00/MTok | 86.7% | $520 monatlich |
| Claude Sonnet 4.5 | $15.00/MTok | $75.00/MTok | 80% | $600 monatlich |
| Gemini 2.5 Flash | $2.50/MTok | $7.50/MTok | 66.7% | $50 monatlich |
| DeepSeek V3.2 | $0.42/MTok | N/A | Exklusiv | Sehr hoher ROI |
Bei einem monatlichen Volumen von 10 Millionen Tokens können Sie mit HolySheep gegenüber der offiziellen API über $1.000 pro Monat sparen. Die Kosten für die ELK-Stack-Integration amortisieren sich bereits nach wenigen Wochen durch die verbesserte Monitoring-Effizienz und die frühzeitige Erkennung von Performance-Problemen.
ELK Stack Architektur für HolySheep API Logging
Die Integration der HolySheep API中转站 mit dem ELK Stack erfordert eine durchdachte Architektur. Im Folgenden erkläre ich die einzelnen Komponenten und deren Konfiguration für eine optimale Logging-Infrastruktur.
Architekturübersicht
Unsere Lösung besteht aus vier Hauptkomponenten: dem HolySheep API Gateway, Logstash als Log-Sammler und Parser, Elasticsearch für die Datenspeicherung und Indizierung, sowie Kibana für die Visualisierung und Analyse. Diese Architektur ermöglicht Echtzeit-Monitoring und langfristige Trendanalysen.
Python-Client mit ELK-Integration
Zunächst benötigen Sie einen optimierten Python-Client, der API-Anfragen an HolySheep sendet und gleichzeitig Log-Events an Logstash weiterleitet. Dieser Client bildet die Grundlage für eine nahtlose Integration.
#!/usr/bin/env python3
"""
HolySheep API Client mit ELK Stack Logging Integration
Base URL: https://api.holysheep.ai/v1
"""
import requests
import json
import time
import socket
import logging
from datetime import datetime
from typing import Dict, Any, Optional, List
from queue import Queue
import threading
try:
from pythonjsonlogger import jsonlogger
except ImportError:
print("Installiere pythonjsonlogger für optimales JSON-Logging...")
import subprocess
subprocess.check_call(['pip', 'install', 'pythonjsonlogger'])
from pythonjsonlogger import jsonlogger
class ELKLogHandler(logging.Handler):
"""Custom Log Handler für Logstash TCP Input"""
def __init__(self, host: str = 'localhost', port: int = 5044):
super().__init__()
self.host = host
self.port = port
self._socket = None
self._buffer = Queue()
self._worker_thread = None
self._running = False
def _connect(self):
"""Stellt TCP-Verbindung zu Logstash her"""
try:
self._socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self._socket.settimeout(5.0)
self._socket.connect((self.host, self.port))
self._running = True
self._worker_thread = threading.Thread(target=self._send_worker, daemon=True)
self._worker_thread.start()
return True
except Exception as e:
print(f"Verbindung zu Logstash fehlgeschlagen: {e}")
return False
def _send_worker(self):
"""Hintergrund-Thread für das Senden der Logs"""
while self._running:
try:
if not self._buffer.empty() and self._socket:
log_entry = self._buffer.get(timeout=1.0)
message = json.dumps(log_entry) + '\n'
self._socket.sendall(message.encode('utf-8'))
except Exception:
pass
def emit(self, record: logging.LogRecord):
"""Sendet Log-Eintrag an Logstash"""
try:
log_entry = {
'@timestamp': datetime.utcnow().isoformat() + 'Z',
'@version': '1',
'level': record.levelname,
'logger': record.name,
'host': socket.gethostname(),
'message': record.getMessage(),
'application': 'holysheep-api-client',
'service': 'elk-integration'
}
if hasattr(record, 'extra_data'):
log_entry.update(record.extra_data)
self._buffer.put(log_entry)
except Exception as e:
self.handleError(record)
def start(self):
"""Startet die Verbindung zu Logstash"""
self._connect()
def close(self):
"""Schließt die Verbindung"""
self._running = False
if self._socket:
self._socket.close()
class HolySheepAPIClient:
"""
HolySheep API Client mit integriertem ELK-Logging
Endpunkt: https://api.holysheep.ai/v1
"""
BASE_URL = "https://api.holysheep.ai/v1"
def __init__(self, api_key: str, elk_handler: Optional[ELKLogHandler] = None):
self.api_key = api_key
self.elk_handler = elk_handler
self.logger = self._setup_logger()
self.session = requests.Session()
self.session.headers.update({
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
})
# Metriken für spätere Analyse
self.metrics = {
'total_requests': 0,
'successful_requests': 0,
'failed_requests': 0,
'total_tokens': 0,
'total_cost_usd': 0.0,
'avg_latency_ms': 0.0
}
def _setup_logger(self) -> logging.Logger:
"""Richtet JSON-Logger mit ELK-Integration ein"""
logger = logging.getLogger(f'HolySheepClient-{id(self)}')
logger.setLevel(logging.INFO)
# Console Handler mit JSON-Format
console_handler = logging.StreamHandler()
formatter = jsonlogger.JsonFormatter(
'%(timestamp)s %(level)s %(name)s %(message)s',
rename_fields={'levelname': 'level', 'asctime': 'timestamp'}
)
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
# ELK Handler hinzufügen
if self.elk_handler:
logger.addHandler(self.elk_handler)
self.elk_handler.start()
return logger
def chat_completions(self, model: str, messages: List[Dict],
temperature: float = 0.7,
max_tokens: int = 2048,
metadata: Optional[Dict] = None) -> Dict[str, Any]:
"""
Sendet Chat-Completion-Anfrage an HolySheep API
Args:
model: Modellname (z.B. 'gpt-4.1', 'claude-sonnet-4.5')
messages: Liste von Chat-Nachrichten
temperature: Sampling-Temperatur
max_tokens: Maximale Anzahl an Antwort-Tokens
metadata: Zusätzliche Metadaten für Logging
Returns:
API-Antwort als Dictionary
"""
start_time = time.time()
request_id = f"req_{int(start_time * 1000)}_{socket.gethostname()}"
payload = {
'model': model,
'messages': messages,
'temperature': temperature,
'max_tokens': max_tokens
}
self.logger.info(
f"API-Anfrage gestartet",
extra={
'request_id': request_id,
'model': model,
'message_count': len(messages),
'temperature': temperature,
'max_tokens': max_tokens,
'metadata': metadata or {}
}
)
try:
response = self.session.post(
f"{self.BASE_URL}/chat/completions",
json=payload,
timeout=30
)
elapsed_ms = (time.time() - start_time) * 1000
response_data = response.json()
# Token-Nutzung extrahieren
usage = response_data.get('usage', {})
prompt_tokens = usage.get('prompt_tokens', 0)
completion_tokens = usage.get('completion_tokens', 0)
total_tokens = usage.get('total_tokens', 0)
# Kosten berechnen
cost = self._calculate_cost(model, prompt_tokens, completion_tokens)
# Metriken aktualisieren
self._update_metrics(
success=True,
tokens=total_tokens,
cost=cost,
latency_ms=elapsed_ms
)
self.logger.info(
f"API-Anfrage erfolgreich",
extra={
'request_id': request_id,
'model': model,
'status_code': response.status_code,
'latency_ms': round(elapsed_ms, 2),
'prompt_tokens': prompt_tokens,
'completion_tokens': completion_tokens,
'total_tokens': total_tokens,
'cost_usd': cost,
'success': True
}
)
return {
'success': True,
'data': response_data,
'metrics': {
'latency_ms': elapsed_ms,
'tokens': total_tokens,
'cost_usd': cost,
'request_id': request_id
}
}
except requests.exceptions.Timeout:
elapsed_ms = (time.time() - start_time) * 1000
self._update_metrics(success=False, latency_ms=elapsed_ms)
self.logger.error(
f"API-Anfrage fehlgeschlagen: Timeout",
extra={
'request_id': request_id,
'model': model,
'latency_ms': round(elapsed_ms, 2),
'error_type': 'timeout',
'success': False
}
)
return {
'success': False,
'error': 'Request timeout after 30 seconds',
'request_id': request_id
}
except requests.exceptions.RequestException as e:
elapsed_ms = (time.time() - start_time) * 1000
self._update_metrics(success=False, latency_ms=elapsed_ms)
self.logger.error(
f"API-Anfrage fehlgeschlagen: {str(e)}",
extra={
'request_id': request_id,
'model': model,
'latency_ms': round(elapsed_ms, 2),
'error_type': type(e).__name__,
'error_message': str(e),
'success': False
}
)
return {
'success': False,
'error': str(e),
'request_id': request_id
}
def _calculate_cost(self, model: str, prompt_tokens: int,
completion_tokens: int) -> float:
"""Berechnet Kosten basierend auf HolySheep-Preisen 2026"""
pricing = {
'gpt-4.1': {'prompt': 2.0, 'completion': 8.0}, # $2/$8 per 1M
'gpt-4': {'prompt': 3.0, 'completion': 15.0},
'gpt-3.5-turbo': {'prompt': 0.5, 'completion': 1.5},
'claude-sonnet-4.5': {'prompt': 3.0, 'completion': 15.0},
'claude-opus-3.5': {'prompt': 15.0, 'completion': 75.0},
'gemini-2.5-flash': {'prompt': 0.35, 'completion': 2.50},
'deepseek-v3.2': {'prompt': 0.1, 'completion': 0.42},
}
if model not in pricing:
# Fallback für unbekannte Modelle
return 0.0
rates = pricing[model]
prompt_cost = (prompt_tokens / 1_000_000) * rates['prompt']
completion_cost = (completion_tokens / 1_000_000) * rates['completion']
return prompt_cost + completion_cost
def _update_metrics(self, success: bool, tokens: int = 0,
cost: float = 0.0, latency_ms: float = 0.0):
"""Aktualisiert interne Metriken"""
self.metrics['total_requests'] += 1
if success:
self.metrics['successful_requests'] += 1
self.metrics['total_tokens'] += tokens
self.metrics['total_cost_usd'] += cost
else:
self.metrics['failed_requests'] += 1
# Gleitender Durchschnitt für Latenz
n = self.metrics['total_requests']
current_avg = self.metrics['avg_latency_ms']
self.metrics['avg_latency_ms'] = ((n - 1) * current_avg + latency_ms) / n
def get_metrics_summary(self) -> Dict[str, Any]:
"""Gibt Zusammenfassung der Metriken zurück"""
return {
'total_requests': self.metrics['total_requests'],
'success_rate': (
self.metrics['successful_requests'] /
max(self.metrics['total_requests'], 1) * 100
),
'total_tokens': self.metrics['total_tokens'],
'total_cost_usd': round(self.metrics['total_cost_usd'], 4),
'avg_latency_ms': round(self.metrics['avg_latency_ms'], 2),
'estimated_monthly_cost': self.metrics['total_cost_usd'] * 30
}
Beispiel-Nutzung
if __name__ == "__main__":
# ELK Handler konfigurieren (Logstash läuft auf localhost:5044)
elk_handler = ELKLogHandler(host='localhost', port=5044)
# HolySheep Client initialisieren
client = HolySheepAPIClient(
api_key='YOUR_HOLYSHEEP_API_KEY',
elk_handler=elk_handler
)
# API-Anfrage mit Logging
messages = [
{"role": "system", "content": "Du bist ein hilfreicher Assistent."},
{"role": "user", "content": "Erkläre die Vorteile der ELK-Stack-Integration"}
]
result = client.chat_completions(
model='gpt-4.1',
messages=messages,
temperature=0.7,
max_tokens=1000,
metadata={'user_id': 'demo_user', 'session': 'test_session'}
)
print(json.dumps(result, indent=2, ensure_ascii=False))
# Metriken anzeigen
print("\n=== Metriken ===")
print(json.dumps(client.get_metrics_summary(), indent=2))
Logstash-Konfiguration für HolySheep Logs
Die Logstash-Konfiguration ist der Kern der ELK-Integration. Sie definiert, wie eingehende Logs verarbeitet, transformiert und an Elasticsearch weitergeleitet werden.
# Logstash Konfiguration für HolySheep API Logging
Datei: /etc/logstash/conf.d/holysheep-api.conf
input {
# TCP Input für Python-Client Logs
tcp {
port => 5044
codec => json_lines
type => "holysheep-api"
}
# UDP Input für schnellere Events (optional)
udp {
port => 5045
codec => json
type => "holysheep-api-fast"
}
# File Input für Anwendungslogs
file {
path => "/var/log/holysheep/*.log"
start_position => "beginning"
sincedb_path => "/var/lib/logstash/sincedb_holysheep"
codec => json
type => "holysheep-file-log"
}
# HTTP Input für direkte API-Call-Logs
http {
port => 5046
codec => json
type => "holysheep-http-log"
}
}
filter {
# Nur HolySheep-relevante Events verarbeiten
if [application] == "holysheep-api-client" {
# Zeitstempel parsen
if [timestamp] {
date {
match => ["timestamp", "ISO8601"]
target => "@timestamp"
}
}
# Request-Duration für bessere Analysen
if [latency_ms] {
mutate {
add_field => {
"latency_category" => ""
}
}
# Latenz-Kategorisierung
if [latency_ms] < 50 {
mutate {
update => { "latency_category" => "excellent" }
}
} else if [latency_ms] < 100 {
mutate {
update => { "latency_category" => "good" }
}
} else if [latency_ms] < 200 {
mutate {
update => { "latency_category" => "acceptable" }
}
} else if [latency_ms] < 500 {
mutate {
update => { "latency_category" => "slow" }
}
} else {
mutate {
update => { "latency_category" => "critical" }
}
}
}
# Kosten-Kategorisierung
if [cost_usd] {
ruby {
code => '
cost = event.get("cost_usd").to_f
if cost < 0.001
event.set("cost_tier", "micro")
elsif cost < 0.01
event.set("cost_tier", "small")
elsif cost < 0.1
event.set("cost_tier", "medium")
elsif cost < 1.0
event.set("cost_tier", "large")
else
event.set("cost_tier", "xlarge")
end
'
}
}
# Modell-Aliases für bessere Lesbarkeit
mutate {
add_field => {
"model_display_name" => "%{model}"
}
}
if [model] == "gpt-4.1" {
mutate {
update => { "model_display_name" => "GPT-4.1" }
}
} else if [model] == "claude-sonnet-4.5" {
mutate {
update => { "model_display_name" => "Claude Sonnet 4.5" }
}
} else if [model] == "deepseek-v3.2" {
mutate {
update => { "model_display_name" => "DeepSeek V3.2" }
}
}
# Fehleranalyse
if [success] == false or [level] == "ERROR" {
mutate {
add_tag => ["error", "needs_attention"]
add_field => {
"error_severity" => "high"
}
}
# Fehlertyp-Analyse
if [error_type] {
mutate {
add_field => {
"error_category" => ""
}
}
if [error_type] =~ /timeout/i {
mutate {
update => { "error_category" => "timeout" }
}
} else if [error_type] =~ /connection/i {
mutate {
update => { "error_category" => "network" }
}
} else if [error_type] =~ /auth/i {
mutate {
update => { "error_category" => "authentication" }
}
} else if [error_type] =~ /rate/i {
mutate {
update => { "error_category" => "rate_limit" }
}
} else {
mutate {
update => { "error_category" => "other" }
}
}
}
}
# Token-Metriken aggregieren
if [total_tokens] {
mutate {
convert => {
"total_tokens" => "integer"
"prompt_tokens" => "integer"
"completion_tokens" => "integer"
}
}
}
# Host-Informationen extrahieren
if [host] {
mutate {
add_field => {
"infrastructure_region" => "auto-detect"
}
}
}
# GeoIP für Client-IP (falls verfügbar)
if [client_ip] {
geoip {
source => "client_ip"
target => "geoip"
}
}
# Request-ID als unique identifier
if [request_id] {
mutate {
add_field => {
"unique_request_id" => "%{request_id}"
}
}
}
# Erfolgsrate-Berechnung pro Minute
mutate {
add_field => {
"minute_timestamp" => "%{+YYYY-MM-dd HH:mm}"
}
}
}
# Globale Tags für alle Events
mutate {
add_tag => ["holysheep", "api-monitoring"]
add_field => {
"integration_version" => "1.0.0"
"elk_stack_version" => "8.x"
}
}
}
output {
# Primary Output: Elasticsearch
if [application] == "holysheep-api-client" {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "holysheep-api-%{+YYYY.MM.dd}"
document_id => "%{unique_request_id}"
# Index-Template für optimierte Mappings
template_name => "holysheep-api-template"
template_overwrite => true
# ILM (Index Lifecycle Management)
ilm_enabled => true
ilm_rollover_alias => "holysheep-api"
ilm_pattern => "000001"
ilm_policy => "holysheep-api-policy"
}
# Debug-Output (im Produktivbetrieb deaktivieren)
# stdout { codec => rubydebug }
}
# Fehler-Alerts an separate Index
if "error" in [tags] {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "holysheep-errors-%{+YYYY.MM.dd}"
}
}
# Metriken für Monitoring-Dashboard
if [type] == "metrics" or [message_type] == "metrics" {
influxdb {
host => "localhost"
port => 8086
db => "holysheep_metrics"
measurement => "api_metrics"
tags => ["holysheep", "production"]
}
}
}
Elasticsearch Index Template
Ein gut konfiguriertes Index-Template ist entscheidend für die Performance bei großen Datenmengen. Dieses Template optimiert die Speicherung und Abfrage von HolySheep API-Logs.
# Elasticsearch Index Template für HolySheep API Logs
Anwenden mit: curl -X PUT "localhost:9200/_index_template/holysheep-api-template"
{
"index_patterns": ["holysheep-api-*"],
"priority": 100,
"template": {
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1,
"index.lifecycle.name": "holysheep-api-policy",
"index.lifecycle.rollover_alias": "holysheep-api",
"refresh_interval": "5s",
"analysis": {
"analyzer": {
"request_id_analyzer": {
"type": "pattern",
"pattern": "_"
}
}
}
},
"mappings": {
"dynamic": "strict",
"properties": {
"@timestamp": {
"type": "date"
},
"@version": {
"type": "keyword"
},
"application": {
"type": "keyword"
},
"service": {
"type": "keyword"
},
"host": {
"type": "keyword"
},
"level": {
"type": "keyword"
},
"logger": {
"type": "keyword"
},
"message": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"request_id": {
"type": "keyword"
},
"unique_request_id": {
"type": "keyword"
},
"model": {
"type": "keyword"
},
"model_display_name": {
"type": "keyword"
},
"success": {
"type": "boolean"
},
"latency_ms": {
"type": "float"
},
"latency_category": {
"type": "keyword"
},
"prompt_tokens": {
"type": "integer"
},
"completion_tokens": {
"type": "integer"
},
"total_tokens": {
"type": "integer"
},
"cost_usd": {
"type": "float"
},
"cost_tier": {
"type": "keyword"
},
"error_type": {
"type": "keyword"
},
"error_message": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 512
}
}
},
"error_category": {
"type": "keyword"
},
"error_severity": {
"type": "keyword"
},
"metadata": {
"type": "object",
"dynamic": true
},
"tags": {
"type": "keyword"
},
"type": {
"type": "keyword"
},
"minute_timestamp": {
"type": "keyword"
},
"infrastructure_region": {
"type": "keyword"
},
"geoip": {
"type": "object",
"dynamic": true
},
"client_ip": {
"type": "ip"
},
"user_id": {
"type": "keyword"
},
"session_id": {
"type": "keyword"
},
"message_count": {
"type": "integer"
},
"temperature": {
"type": "float"
},
"max_tokens": {
"type": "integer"
},
"integration_version": {
"type": "keyword"
},
"elk_stack_version": {
"type": "keyword"
},
"status_code": {
"type": "integer"
}
}
}
},
"_meta": {
"description": "Template für HolySheep API Monitoring Logs",
"version": "1.0.0",
"created_by": "HolySheep ELK Integration"
}
}
Kibana Dashboards und Visualisierungen
Um die gesammelten Daten effektiv zu nutzen, erstellen wir ein umfassendes Kibana-Dashboard. Dieses Dashboard ermöglicht Echtzeit-Überwachung und tiefe Einblicke in die API-Nutzung.
{
"title": "HolySheep API Monitoring Dashboard",
"description": "Echtzeit-Monitoring der HolySheep API中转站 mit ELK Stack",
"hits": 0,
"panelsJSON": "[
{
'gridData': {'x\":0,\"y\":0,\"w\":12,\"h\":8},
'title':'API Request Volume (stündlich)',
'type':'visualization',
'visualization':{
'type':'histogram',
'aggs':[
{'type':'date_histogram','field':'@timestamp','interval':'hour'},
{'type':'count','label':'Anfragen'}
]
}
},
{
'gridData': {'x\":12,\"y\":0,\"w\":12,\"h\":8},
'title':'Latenzverteilung',
'type':'visualization',
'visualization':{
'type':'histogram',
'aggs':[
{'type':'histogram','field':'latency_ms','interval':10,'min_doc_count':1}
]
}
},
{
'gridData': {'x\":0,\"y\":8,\"w\":8,\"h\":6},
'title':'Kosten pro Modell',
'type':'visualization',
'visualization':{
'type':'pie',
'aggs':[
{'type':'terms','field':'model_display_name','size
Verwandte Ressourcen
Verwandte Artikel