Last9
आधिकारिकअपने स्थानीय वातावरण में रीयल-टाइम प्रोडक्शन संदर्भ—लॉग, मीट्रिक्स और ट्रेस—को सहजता से लाएं ताकि कोड को तेजी से ऑटो-फिक्स किया जा सके।
Last9 MCP के साथ आप क्या कर सकते हैं?
अपने सहायक से Last9 के लाइव लॉग, ट्रेस और मेट्रिक्स का उपयोग करके प्रोडक्शन इंसिडेंट की जांच करवाएं।
- सेवा स्वास्थ्य रैंक करें — अपने फ्लीट में अनुरोध संख्या, थ्रूपुट और 4xx/5xx त्रुटियां देखने के लिए
get_service_summaryका उपयोग करें। - धीमे डेटाबेस क्वेरी खोजें — वास्तविक सबसे धीमी निष्पादन को ट्रेस आईडी के साथ खींचने के लिए
get_database_slow_queriesका उपयोग करें। - सेवा लॉग खींचें — गंभीरता और बॉडी सामग्री द्वारा फ़िल्टर की गई कच्ची लॉग लाइनें प्राप्त करने के लिए
get_service_logsका उपयोग करें। - एकल अनुरोध ट्रेस करें — सटीक ट्रेस आईडी के लिए पैरेंट/चाइल्ड वॉटरफॉल देखने के लिए
get_trace_waterfallका उपयोग करें। - अलर्ट स्थिति जांचें — समय सीमा में प्रति अलर्ट नियम फायरिंग इतिहास देखने के लिए
get_alert_rule_stateका उपयोग करें। - डैशबोर्ड प्रबंधित करें — पैनल और क्वेरी के साथ कस्टम डैशबोर्ड बनाने के लिए
create_dashboardका उपयोग करें।
दस्तावेज़
Last9 MCP Server

आपका AI एजेंट नहीं जानता कि प्रोडक्शन में क्या खराब है। यह इसे ठीक करता है।
Last9 MCP Server Claude, Cursor, Windsurf और किसी भी अन्य MCP-सक्षम AI सहायक को सीधे आपके प्रोडक्शन ऑब्ज़र्वेबिलिटी डेटा — लॉग्स, मेट्रिक्स, ट्रेसेस, एक्सेप्शन्स, डेटाबेस क्वेरीज़, अलर्ट्स और डिप्लॉयमेंट्स से जोड़ता है। एजेंट अनुमान लगाना बंद कर देता है और वास्तविक सिग्नल पढ़ना शुरू कर देता है।
30 सेकंड में शुरू करें (होस्टेड)
इंस्टॉल करने के लिए कोई बाइनरी नहीं। प्रबंधित करने के लिए कोई टोकन नहीं। एक URL, ब्राउज़र में OAuth, हो गया।
अपने Last9 URL में अपना org slug खोजें: app.last9.io/<org_slug>/...
Claude Code
claude mcp add --transport http last9 https://app.last9.io/api/v4/organizations/<org_slug>/mcp
/mcp टाइप करें, last9 चुनें, प्रमाणित करें। बस इतना ही।
Cursor
सेटिंग्स > MCP > नया MCP सर्वर जोड़ें:
{
"mcpServers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
Connect पर क्लिक करें, OAuth पूरा करें।
VS Code
v1.99+ आवश्यक। कमांड पैलेट खोलें → MCP: Add Server, URL पेस्ट करें, प्रमाणित करें।
या सीधे settings.json में:
{
"mcp": {
"servers": {
"last9": {
"type": "http",
"url": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
}
Windsurf
सेटिंग्स > Cascade > MCP मार्केटप्लेस खोलें > गियर आइकन (mcp_config.json):
{
"mcpServers": {
"last9": {
"serverUrl": "https://app.last9.io/api/v4/organizations/<org_slug>/mcp"
}
}
}
Claude Web/Desktop
सेटिंग्स > Connectors > कस्टम कनेक्टर जोड़ें। इसे last9 नाम दें, URL पेस्ट करें, प्रमाणित करें।
आपके Claude संगठन के लिए एडमिन एक्सेस आवश्यक है।
सेल्फ-होस्टेड (STDIO)
इसका उपयोग तब करें जब आपका MCP क्लाइंट HTTP ट्रांसपोर्ट का समर्थन नहीं करता है, या जब आपको सर्वर को स्थानीय रूप से चलाने की आवश्यकता हो।
इंस्टॉल करें
Homebrew:
brew install last9/tap/last9-mcp
NPM:
npm install -g @last9/mcp-server@latest
# or directly:
npx -y @last9/mcp-server@latest
बाइनरी रिलीज़ (Windows / मैनुअल):
GitHub Releases से डाउनलोड करें:
| प्लेटफ़ॉर्म | आर्काइव |
|---|---|
| Windows (x64) | last9-mcp-server_Windows_x86_64.zip |
| Windows (ARM64) | last9-mcp-server_Windows_arm64.zip |
| Linux (x64) | last9-mcp-server_Linux_x86_64.tar.gz |
| Linux (ARM64) | last9-mcp-server_Linux_arm64.tar.gz |
| macOS (x64) | last9-mcp-server_Darwin_x86_64.tar.gz |
| macOS (ARM64) | last9-mcp-server_Darwin_arm64.tar.gz |
रिफ्रेश टोकन प्राप्त करें
केवल एडमिन ही टोकन बना सकते हैं।
- API Access पर जाएं
- Write अनुमतियों के साथ Generate Token पर क्लिक करें
- इसे कॉपी करें
क्लाइंट कॉन्फ़िगरेशन
Homebrew:
{
"mcpServers": {
"last9": {
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
NPM:
{
"mcpServers": {
"last9": {
"command": "npx",
"args": ["-y", "@last9/mcp-server@latest"],
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
इसे कहाँ पेस्ट करें:
| क्लाइंट | स्थान |
|---|---|
| Claude Web/Desktop | सेटिंग्स > Developer > Edit Config (claude_desktop_config.json) |
| Cursor | सेटिंग्स > Cursor Settings > MCP > नया ग्लोबल MCP सर्वर जोड़ें |
| Windsurf | सेटिंग्स > Cascade > MCP मार्केटप्लेस > गियर आइकन (mcp_config.json) |
| VS Code | settings.json में { "mcp": { "servers": { ... } } } से लपेटें — विवरण |
VS Code STDIO कॉन्फ़िग
{
"mcp": {
"servers": {
"last9": {
"type": "stdio",
"command": "/opt/homebrew/bin/last9-mcp",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
}
NPM के लिए: "command": "npx" का उपयोग करें और "args": ["-y", "@last9/mcp-server@latest"] जोड़ें।
Windows
GitHub Releases से डाउनलोड करने के बाद, निकालें और पूर्ण पथ पर इंगित करें:
{
"mcpServers": {
"last9": {
"command": "C:\\Users\\<user>\\AppData\\Local\\Programs\\last9-mcp-server.exe",
"env": {
"LAST9_REFRESH_TOKEN": "<your_refresh_token>"
}
}
}
}
Windows पर NPM मार्ग आसान है — कोई पथ प्रबंधन नहीं।
पर्यावरण चर
| चर | डिफ़ॉल्ट | विवरण |
|---|---|---|
LAST9_REFRESH_TOKEN | (आवश्यक) | API Access से रिफ्रेश टोकन |
LAST9_DATASOURCE | org डिफ़ॉल्ट | डेटासोर्स/क्लस्टर का नाम — तब उपयोगी जब आपके पास कई Levitate क्लस्टर हों |
LAST9_API_HOST | app.last9.io | API होस्ट को ओवरराइड करें |
LAST9_TOOLSETS | सभी टूल | कॉमा-सेपरेटेड टूलसेट एक्सपोज़ करने के लिए (logs, traces, metrics, alerts, dashboards, investigate, all)। उपनाम: LAST9_MCP_TOOLSETS |
LAST9_MAX_GET_LOGS_ENTRIES | 5000 | चंक किए गए get_logs अनुरोधों के लिए अधिकतम प्रविष्टियाँ |
LAST9_DEBUG_CHUNKING | false | get_logs, get_service_logs, get_traces के लिए चंक-प्लानिंग विवरण लॉग करने हेतु true सेट करें |
LAST9_DISABLE_TELEMETRY | true | आंतरिक OTel ट्रेसिंग सक्षम करने के लिए false सेट करें |
OTEL_SDK_DISABLED | — | मानक OTel env var। LAST9_DISABLE_TELEMETRY को ओवरराइड करता है |
OTEL_EXPORTER_OTLP_ENDPOINT | — | OTLP कलेक्टर एंडपॉइंट (केवल जब टेलीमेट्री सक्षम हो) |
OTEL_EXPORTER_OTLP_HEADERS | — | OTLP प्रमाणीकरण हेडर (केवल जब टेलीमेट्री सक्षम हो) |
यह क्या कर सकता है
सेवा स्वास्थ्य
get_service_summary— रैंक्ड fleet(service, env)पंक्तियाँ: अंतराल request_count, throughput_rpm, HTTP 4xx/5xx गणनाएँ, और gRPC त्रुटि गणनाएँget_service_environments— आपकी सेवाओं के लिए उपलब्ध वातावरण। इसे पहले चलाएं — अन्य APM टूल को यहाँ सेenvकी आवश्यकता होती हैget_service_performance_details— पूर्ण विवरण: throughput, त्रुटि दर, p50/p90/p95/avg/max, apdex, उपलब्धताget_service_operations_summary— HTTP एंडपॉइंट्स, DB कॉल्स, मैसेजिंग, HTTP क्लाइंट्स द्वारा समूहीकृत ऑपरेशनget_service_dependency_graph— अपस्ट्रीम/डाउनस्ट्रीम/इंफ्रा के लिए throughput, विलंबता और त्रुटि दरों के साथ निर्भरता मानचित्रget_apm_service_deviations— वर्तमान विंडो की तुलना समान अवधि के बेसलाइन से करें: गिरावट/सुधार, Apdex समाधान, और टर्मिनल परिणाम (fleet या एकल सेवा)get_exceptions— सेवा और स्पैन फ़िल्टर के साथ सर्वर-साइड एक्सेप्शन
डेटाबेस ऑब्ज़र्वेबिलिटी
चार टूल जो सीधे आपके डेटाबेस प्रदर्शन पर केंद्रित हैं, OpenTelemetry ट्रेस स्पैन से व्युत्पन्न। यदि आप पहले से OTel उपयोग कर रहे हैं तो कोई अतिरिक्त इंस्ट्रुमेंटेशन आवश्यक नहीं है।
get_databases— अपने सभी इंफ्रास्ट्रक्चर में सभी डेटाबेस खोजें: DB प्रकार, होस्ट, throughput (क्वेरी/मिनट), p95 विलंबता, त्रुटि दर, आश्रित सेवाओं की संख्याget_database_slow_queries— वास्तविक सबसे धीमी क्वेरी निष्पादन, अवधि के अनुसार क्रमित, पूर्ण ट्रेसेस में जाने के लिए ट्रेस आईडी के साथget_database_queries— क्वेरी पैटर्न और समुच्चय: क्वेरी कितनी बार चलती है, औसत/p95 अवधि, त्रुटि दरget_database_server_metrics— DB होस्ट से सर्वर-साइड मेट्रिक्स (CPU, कनेक्शन, बफ़र हिट दरें — आपके DB सिस्टम पर निर्भर करता है)
PostgreSQL, MySQL, MongoDB, Redis, Aerospike, और db_system विशेषता वाली किसी भी अन्य चीज़ का समर्थन करता है जिसे OTel ट्रेस करता है।
Prometheus / PromQL
prometheus_range_query— किसी भी मेट्रिक पर PromQL रेंज क्वेरीज़prometheus_instant_query— तात्कालिक क्वेरीज़;avg_over_time,sum_over_timeजैसे रोलअप फ़ंक्शन का उपयोग करेंprometheus_label_values— दिए गए सीरीज़ के लिए लेबल मानprometheus_labels— सीरीज़ के लिए उपलब्ध सभी लेबल
इन्हें LAST9_DATASOURCE सेट करके डिफ़ॉल्ट से भिन्न डेटासोर्स/क्लस्टर पर इंगित करें।
लॉग्स
get_logs— पूर्ण JSON पाइपलाइन लॉग क्वेरीज़ (एग्रीगेशन, फ़िल्टर, फ़ील्ड निष्कर्षण)get_service_logs— सेवा के लिए कच्ची लॉग पंक्तियाँ, गंभीरता और बॉडी सामग्री द्वारा फ़िल्टर करने योग्यget_log_attributes— समय विंडो के लिए लॉग स्कीमा में विशेषताओं की वैश्विक सूचीget_log_attributes_for_pipeline— चालू पाइपलाइन के लिए वास्तव में मौजूद लॉग फ़ील्ड (स्कोप्ड डिस्कवरी), प्रत्येक अपने सटीकfilter_fieldके साथget_drop_rules— Last9 Control Plane से लॉग ड्रॉप नियमadd_drop_rule— स्रोत पर लॉग वॉल्यूम काटने के लिए नया ड्रॉप नियम बनाएं
ट्रेसेस
get_traces— व्यापक खोजों और एग्रीगेशन के लिए JSON पाइपलाइन ट्रेस क्वेरीज़get_service_traces— सटीक ट्रेस ID या सेवा नाम द्वारा ट्रेसेस। ट्रेस ID होने पर इसका उपयोग करें — यह तेज़ हैget_trace_attributes— ट्रेस स्कीमा में विशेषताओं की वैश्विक सूचीget_trace_attributes_for_pipeline— चालू पाइपलाइन के लिए वास्तव में मौजूद विशेषताएँ (स्कोप्ड डिस्कवरी), प्रत्येक अपने सटीकfilter_fieldके साथget_trace_attribute_values— ट्रेस विशेषता के लिए विशिष्ट मान, वैकल्पिक रूप से पाइपलाइन तक सीमितget_trace_attribute_deviations— दो सीमित स्पैन समूहों (धीमा बनाम तेज़, त्रुटि बनाम गैर-त्रुटि, या दो समय विंडो) के बीच भिन्न विशेषता मानों को रैंक करता है। सहसंबंध, कारण नहींget_trace_waterfall— एक सटीक ट्रेस पैरेंट/चाइल्ड वॉटरफॉल के रूप में अंतराल-संघ स्व-समय, सबसे धीमे स्पैन और ग्राफ़ चेतावनियों के साथ
परिवर्तन ईवेंट और अलर्ट
get_change_events— डिप्लॉयमेंट, कॉन्फ़िग परिवर्तन, रोलबैक। घटनाओं को उससे सहसंबंधित करें जो बदलाget_alert_config— अलर्ट नियम कॉन्फ़िगरेशन — नाम, गंभीरता, प्रकार, टैग द्वारा खोजने योग्यget_alerts— समय विंडो के भीतर वर्तमान में सक्रिय अलर्टget_alert_rule_state— समय सीमा में प्रति अलर्ट नियम ऐतिहासिक फायरिंग स्थिति (1/0),rule_idद्वारा समूहीकृत। अलर्ट समूह, नियम नाम, लेबल फ़िल्टर और स्थिति द्वारा फ़िल्टर करने योग्य।get_notification_channels— कॉन्फ़िगर किए गए अधिसूचना चैनल (Slack, PagerDuty, ईमेल, आदि)
कस्टम डैशबोर्ड
list_dashboards— आपके org में सभी कस्टम डैशबोर्ड: IDs, नाम और मेटाडेटाget_dashboard— ID द्वारा पूर्ण डैशबोर्ड परिभाषा, पैनल और क्वेरीज़ सहितcreate_dashboard— पैनल, क्वेरीज़ और मेटाडेटा के साथ नया कस्टम डैशबोर्ड बनाएंupdate_dashboard— ID द्वारा मौजूदा डैशबोर्ड अपडेट करें (रीड-ओनली सिस्टम डैशबोर्ड त्रुटि लौटाते हैं)delete_dashboard— ID द्वारा कस्टम डैशबोर्ड हटाएंlist_dashboard_snapshots— डैशबोर्ड के लिए फ्रोज़न पॉइंट-इन-टाइम स्नैपशॉट (केवल मेटाडेटा)get_dashboard_snapshot— RCA / साझा करने योग्य दृश्यों के लिए पैनल डेटा सहित पूर्ण फ्रोज़न स्नैपशॉटdelete_dashboard_snapshot— ID द्वारा फ्रोज़न स्नैपशॉट हटाएं
फ़ज़ी नाम समाधान
did_you_mean— जब एजेंट किसी इकाई नाम के बारे में सुनिश्चित नहीं होता है, तो यह आपके कैटलॉग से निकटतम मिलान लौटाता है (सेवाएँ, वातावरण, होस्ट, डेटाबेस, K8s डिप्लॉयमेंट्स/नेमस्पेसेस, जॉब्स)। समानता स्कोर के साथ 3 तक सुझाव। सर्वर नाम लुकअप खाली होने पर अधिकांश टूल से पहले स्वचालित रूप से इसे कॉल करता है।
यह कैसे काम करता है
हर प्रतिक्रिया पर डीप लिंक। प्रत्येक टूल एक deep_link फ़ील्ड लौटाता है — उस सटीक क्वेरी और समय सीमा के लिए Last9 डैशबोर्ड का सीधा URL। एजेंट आपको लिंक दे सकता है; आप उस पर क्लिक करते हैं; आप वहाँ पहुँच जाते हैं।
टूलसेट। डिफ़ॉल्ट रूप से सर्वर हर टूल को एक्सपोज़ करता है। ऑटोमेशन होस्ट जिन्हें केवल जाँच की आवश्यकता है (लॉग्स/ट्रेसेस/मेट्रिक्स) LAST9_TOOLSETS=investigate सेट कर सकते हैं (या --toolsets=investigate पास कर सकते हैं) ताकि tools/list क्लाइंट-साइड मास-डिसेबल के बिना छोटा रहे। नामित पैक: logs, traces, metrics, alerts, dashboards, investigate, all। अज्ञात नाम तेज़ी से विफल हो जाते हैं। metrics पैक अकेले नहीं शामिल करता है list_datasources या did_you_mean — जब आपको उन डिस्कवरी सहायकों की आवश्यकता हो तो investigate (या टूलसेट संयोजित) का उपयोग करें।
टूल संदर्भ संसाधन। लंबी logjson/tracejson/service-logs/metrics मैनुअल MCP संसाधन हैं (last9://reference/logjson, last9://reference/tracejson, last9://reference/service_logs, last9://reference/metrics), हमेशा-चालू टूल विवरण टेक्स्ट नहीं। महत्वपूर्ण क्वेरी नियम टूल विवरण पर बने रहते हैं ताकि जो एजेंट कभी resources/read नहीं कहते उन्हें भी सही निर्माण मार्गदर्शन मिले। get_log_attributes / get_log_attributes_for_pipeline (और ट्रेस समकक्ष) के साथ org-विशिष्ट फ़ील्ड खोजें — वे विवरणों में इंजेक्ट नहीं होते।
चंक किए गए बड़े परिणाम। get_logs और get_traces ट्रंकेटिंग के बजाय चंकिंग के माध्यम से बड़े परिणाम सेट संभालते हैं। लॉग्स के लिए डिफ़ॉल्ट सीमा 5000 प्रविष्टियाँ है; LAST9_MAX_GET_LOGS_ENTRIES के माध्यम से कॉन्फ़िगर करने योग्य।
विकास
HTTP मोड, curl परीक्षण, स्रोत से निर्माण
HTTP मोड में चलाएं
export LAST9_REFRESH_TOKEN="your_refresh_token"
export LAST9_HTTP=true
export LAST9_PORT=8080
./last9-mcp-server
सर्वर http://localhost:8080/mcp पर शुरू होता है।
curl के साथ परीक्षण करें
स्ट्रीमेबल HTTP हैंडलर स्टेटलेस मोड में चलता है, इसलिए कोई भी अनुरोध स्वतंत्र रूप से परोसा जाता है। एक initialize हैंडशेक और एक Mcp-Session-Id हेडर वैकल्पिक हैं — इन्हें भेजने वाले क्लाइंट अभी भी काम करते हैं (हेडर स्वीकार किया जाता है और अनदेखा किया जाता है), और क्लाइंट सीधे tools/list / tools/call पर भी जा सकते हैं। हर टूल एक स्वतंत्र अनुरोध/प्रतिक्रिया क्वेरी है; सर्वर कोई सर्वर→क्लाइंट सूचनाएँ जारी नहीं करता, इसलिए GET /mcp (SSE स्ट्रीम) 405 लौटाता है।
# List tools — a session handshake is optional in stateless mode
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}'
# Call a tool
curl -s -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_service_logs",
"arguments": {
"service_name": "your-service-name",
"lookback_minutes": 30,
"limit": 10
}
}
}'
स्रोत से बिल्ड करें
git clone https://github.com/last9/last9-mcp-server.git
cd last9-mcp-server
go build -o last9-mcp-server
LAST9_HTTP=true ./last9-mcp-server
LAST9_HTTP=true स्थानीय विकास के लिए है। वास्तविक उपयोग के लिए, होस्टेड HTTP एंडपॉइंट आसान है।
टूल संदर्भ
सभी पैरामीटर, समय इनपुट मानक, और विवरण
समय इनपुट
- पूर्ण समय (
start_time_iso/end_time_iso, याtime_iso)lookback_minutesपर प्राथमिकता लेते हैं। - सापेक्ष विंडो के लिए:
lookback_minutesका उपयोग करें। - पूर्ण विंडो के लिए: RFC3339/ISO8601 का उपयोग करें —
2026-02-09T15:04:05Z। - लिगेसी
YYYY-MM-DD HH:MM:SSकेवल संगतता के लिए स्वीकार किया जाता है।
get_exceptions
limit(पूर्णांक, वैकल्पिक): अधिकतम अपवाद। डिफ़ॉल्ट: 20।lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक): पूर्ण समय सीमा।service_name(स्ट्रिंग, वैकल्पिक): सेवा के अनुसार फ़िल्टर करें।span_name(स्ट्रिंग, वैकल्पिक): span नाम के अनुसार फ़िल्टर करें।env(स्ट्रिंग, वैकल्पिक): वातावरण के अनुसार फ़िल्टर करें।
get_service_summary
start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)env(स्ट्रिंग, वैकल्पिक): PromQL regex। डिफ़ॉल्ट.*है। सटीक मिलान के लिए एंकर चाहिए (जैसे^prod$)।sort_by(स्ट्रिंग, वैकल्पिक):request_count(डिफ़ॉल्ट),throughput_rpm,http_4xx_count,http_5xx_count, याgrpc_error_count।limit(पूर्णांक, वैकल्पिक): अधिकतम रैंक की गई पंक्तियाँ। छोड़ें या 0 का मतलब 10; 100 से ऊपर के मान 100 पर क्लैम्प हो जाते हैं।
get_service_environments
start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)
अन्य सभी APM टूल में
envमान आवश्यक होता है। यदि यह खाली लौटता है तो""का उपयोग करें।
get_service_performance_details
service_name(स्ट्रिंग, आवश्यक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)env(स्ट्रिंग, वैकल्पिक): डिफ़ॉल्टprodहै।
get_service_operations_summary
service_name(स्ट्रिंग, आवश्यक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)env(स्ट्रिंग, वैकल्पिक): डिफ़ॉल्टprodहै।
get_service_dependency_graph
service_name(स्ट्रिंग, वैकल्पिक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)env(स्ट्रिंग, वैकल्पिक): डिफ़ॉल्टprodहै।
get_apm_service_deviations
service_name(स्ट्रिंग, वैकल्पिक): फ्लीट स्कोप के लिए छोड़ें; एक सेवा और उसके ऑपरेशन सहसंबंधों के लिए प्रदान करें।lookback_minutes(पूर्णांक, वैकल्पिक): वर्तमान विंडो। डिफ़ॉल्ट: 60।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक): स्पष्ट वर्तमान विंडो।baseline_start_time_iso/baseline_end_time_iso(स्ट्रिंग, वैकल्पिक): स्पष्ट बेसलाइन। डिफ़ॉल्ट तुरंत पिछली समान अवधि की विंडो है।datasource(स्ट्रिंग, वैकल्पिक): तुलना को एक datasource तक सीमित करें।env(स्ट्रिंग, वैकल्पिक): डिफ़ॉल्टprodहै।max_services/max_operations(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट 10, अधिकतम 10 प्रत्येक।
get_databases
env(स्ट्रिंग, वैकल्पिक): वातावरण के अनुसार फ़िल्टर करें। डिफ़ॉल्ट: सभी।lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)
get_database_slow_queries
db_system(स्ट्रिंग, वैकल्पिक): जैसेpostgresql,mysql,mongodb,redis।host(स्ट्रिंग, वैकल्पिक): डेटाबेस होस्ट (net_peer_name)।service_name(स्ट्रिंग, वैकल्पिक): कॉल करने वाले सेवा का नाम।env(स्ट्रिंग, वैकल्पिक)min_duration_ms(फ्लोट, वैकल्पिक): न्यूनतम क्वेरी अवधि ms में।lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)limit(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 20।
get_database_queries
db_system(स्ट्रिंग, वैकल्पिक)host(स्ट्रिंग, वैकल्पिक)service_name(स्ट्रिंग, वैकल्पिक)env(स्ट्रिंग, वैकल्पिक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)limit(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 20।
get_database_server_metrics
db_system(स्ट्रिंग, आवश्यक): जैसेpostgresql,mysql,mongodb,redis,aerospike।host(स्ट्रिंग, वैकल्पिक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)
prometheus_range_query
query(स्ट्रिंग, आवश्यक): PromQL क्वेरी।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट पिछले 60 मिनट।lookback_minutes(फ्लोट, वैकल्पिक): डिफ़ॉल्ट: 60।
prometheus_instant_query
query(स्ट्रिंग, आवश्यक)time_iso(स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट अभी।lookback_minutes(फ्लोट, वैकल्पिक)
prometheus_label_values
match_query(स्ट्रिंग, वैकल्पिक): PromQL फ़िल्टर।label(स्ट्रिंग, आवश्यक): लेबल नाम।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)
prometheus_labels
match_query(स्ट्रिंग, वैकल्पिक): PromQL फ़िल्टर।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)
get_logs
logjson_query(ऐरे, आवश्यक): JSON पाइपलाइन क्वेरी।lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 5।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)limit(पूर्णांक, वैकल्पिक): सर्वर डिफ़ॉल्ट: 5000।index(स्ट्रिंग, वैकल्पिक):physical_index:<name>याrehydration_index:<block_name>।
लॉग-आधारित सेवा इन्वेंट्री के लिए, पहले physical_index_service_count क्वेरी करें:
sum by (name, service_name, env) (physical_index_service_count{destination="logs"})
service_name को ServiceName के रूप में, env को वातावरण के रूप में उपयोग करें जब मौजूद हो, और name को भौतिक इंडेक्स नाम के रूप में उपयोग करें। यदि name="default", तो index छोड़ दें; उपयोगकर्ता द्वारा चयनित गैर-डिफ़ॉल्ट भौतिक इंडेक्स के लिए, index: "physical_index:<name>" पास करें। यदि बैकएंड स्पष्ट भौतिक इंडेक्स फ़िल्टरिंग को अस्वीकार करता है, तो index के बिना पुनः प्रयास करें और रिपोर्ट करें कि उस बैकएंड के लिए स्पष्ट भौतिक इंडेक्स फ़िल्टरिंग उपलब्ध नहीं है।
get_service_logs
service_name(स्ट्रिंग, आवश्यक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।limit(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 20।env(स्ट्रिंग, वैकल्पिक)severity_filters(ऐरे, वैकल्पिक): जैसे["error", "warn"]। OR तर्क।body_filters(ऐरे, वैकल्पिक): जैसे["timeout", "failed"]। OR तर्क।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)index(स्ट्रिंग, वैकल्पिक)
एकाधिक फ़िल्टर प्रकार AND के साथ संयुक्त होते हैं। प्रत्येक ऐरे आंतरिक रूप से OR का उपयोग करता है।
पहले व्यापक समग्र गणनाओं के लिए get_logs का उपयोग करें; किसी सेवा/env/इंडेक्स और छोटे नमूना सेट तक सीमित करने के बाद ही get_service_logs का उपयोग करें।
get_log_attributes
lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 15।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)region(स्ट्रिंग, वैकल्पिक)index(स्ट्रिंग, वैकल्पिक)
get_log_attributes_for_pipeline
pipeline(ऐरे, आवश्यक): डिस्कवरी को स्कोप करने के लिए पिछले फ़िल्टर चरण, जैसे[{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]।lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 15।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)region(स्ट्रिंग, वैकल्पिक)index(स्ट्रिंग, वैकल्पिक)
get_drop_rules
कोई पैरामीटर नहीं। GET /otel_settings/drop?region=... के माध्यम से ड्रॉप नियम सूचीबद्ध करता है।
add_drop_rule
name(स्ट्रिंग, आवश्यक)filters(ऐरे, आवश्यक): प्रत्येक फ़िल्टर:key,value,operator(equals/not_equals),conjunction(and)।- फ़िल्टर कुंजियों को
attributes["key_name"]याresource.attributes["key_name"]का उपयोग करना चाहिए (Last9 API द्वारा आवश्यक)। POST /otel_settings/drop?region=...&cluster_id=...के माध्यम से नियम बनाता है।
get_traces
व्यापक खोजों और एकत्रीकरण के लिए उपयोग करें। सटीक trace ID लुकअप के लिए, get_service_traces का उपयोग करें।
tracejson_query(ऐरे, आवश्यक)start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।limit(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 5000।
get_service_traces
trace_id या service_name में से ठीक एक आवश्यक है।
trace_id(स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट लुकबैक: 72 घंटे।service_name(स्ट्रिंग, वैकल्पिक): डिफ़ॉल्ट लुकबैक: 60 मिनट।lookback_minutes(पूर्णांक, वैकल्पिक)start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)limit(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 10।env(स्ट्रिंग, वैकल्पिक)
get_trace_attributes
lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 15।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)region(स्ट्रिंग, वैकल्पिक)
get_trace_attributes_for_pipeline
pipeline(ऐरे, आवश्यक): डिस्कवरी को स्कोप करने के लिए पिछले फ़िल्टर चरण, जैसे[{"type":"filter","query":{"$eq":["ServiceName","<service>"]}}]।lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 15।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)region(स्ट्रिंग, वैकल्पिक)
get_trace_attribute_values
tag_name(स्ट्रिंग, आवश्यक):get_trace_attributesसे विशेषता नाम (जैसेresource_departmentयाattributes['http.method'])।pipeline(ऐरे, वैकल्पिक): मानों को स्कोप करने के लिए पिछले फ़िल्टर चरण; वैश्विक मानों के लिए छोड़ दें।region(स्ट्रिंग, वैकल्पिक)
get_trace_attribute_deviations
comparison_mode(स्ट्रिंग, आवश्यक):latency,errors, याtime।service_name(स्ट्रिंग, आवश्यक)environment(स्ट्रिंग, आवश्यक): सटीकdeployment.environmentमान।operation(स्ट्रिंग, वैकल्पिक)filters(ऐरे, वैकल्पिक): Trace JSON फ़िल्टर शर्तें।candidate_attributes(ऐरे, वैकल्पिक): अधिकतम 8; सीमित डिस्कवरी के लिए छोड़ दें।latency_threshold_ms(संख्या, वैकल्पिक):latencyमोड के लिए आवश्यक; अन्य मोड के लिए अस्वीकृत।start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 15। अधिकतम: 15।baseline_start_time_iso/baseline_end_time_iso(स्ट्रिंग, वैकल्पिक):timeमोड के लिए आवश्यक; लक्ष्य विंडो के साथ गैर-अतिव्यापी और अवधि में समान।minimum_cohort_size(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 100। न्यूनतम: 20।minimum_value_support(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 20। न्यूनतम: 10।limit(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 10। अधिकतम: 10।
साथी बैकएंड क्षमता सक्षम होना आवश्यक है।
get_trace_waterfall
trace_id(स्ट्रिंग, आवश्यक)environment(स्ट्रिंग, वैकल्पिक)start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 4320 (72 घंटे)।selected_span_id(स्ट्रिंग, वैकल्पिक): केवल उस span के लिए विशेषताएँ, घटनाएँ और लिंक लौटाता है।max_spans(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 500। अधिकतम: 1000।
एक investigation-evidence/v1 एनवलप लौटाता है; वॉटरफॉल data के अंतर्गत है।
get_change_events
start_time_iso/end_time_iso(स्ट्रिंग, वैकल्पिक)lookback_minutes(पूर्णांक, वैकल्पिक): डिफ़ॉल्ट: 60।service_name(स्ट्रिंग, वैकल्पिक)env(स्ट्रिंग, वैकल्पिक)event_name(स्ट्रिंग, वैकल्पिक):available_event_namesप्राप्त करने के लिए पहले इसके बिना कॉल करें।
get_alert_config
search_term(string, वैकल्पिक): नाम, समूह, डेटा स्रोत, टैग में फ्री-टेक्स्ट खोज।rule_name(string, वैकल्पिक)severity(string, वैकल्पिक)rule_type(string, वैकल्पिक):staticयाanomaly।alert_group_name/alert_group_type/data_source_name(string, वैकल्पिक)tags(array, वैकल्पिक): सभी मेल खाने चाहिए (AND तर्क)।
get_alerts
time_iso(string, वैकल्पिक): RFC3339 में मूल्यांकन समय।window(integer, वैकल्पिक): सेकंड में लुकबैक। डिफ़ॉल्ट: 900। सीमा: 60–86400।lookback_minutes(integer, वैकल्पिक): सीमा: 1–1440।
get_alert_rule_state
start_time(integer, आवश्यक): सीमा की यूनिक्स एपॉक शुरुआत (समावेशी)।end_time(integer, आवश्यक): सीमा की यूनिक्स एपॉक समाप्ति (समावेशी)।step(integer, आवश्यक): नमूनों के बीच सेकंड में रिज़ॉल्यूशन। नमूनों की संख्या((end_time - start_time) / step + 1)100 पर सीमित है।alert_group_id(string, वैकल्पिक): अलर्ट समूह ID द्वारा फ़िल्टर करें।rule_name(string, वैकल्पिक): नियम नाम पर रेगेक्स फ़िल्टर।alert_group_name(string, वैकल्पिक): अलर्ट समूह नाम पर रेगेक्स फ़िल्टर।label_filters(string, वैकल्पिक): अल्पविराम से अलग किए गएkey=valueलेबल फ़िल्टर।state(string, वैकल्पिक): स्थिति द्वारा फ़िल्टर करें (जैसेfiring)।
यह rule_id -> [{timestamp, is_firing}] का JSON मैप लौटाता है। जिस समय कोई नियम अपस्ट्रीम प्रतिक्रिया में अनुपस्थित होता है, उसे is_firing=0 के रूप में रिपोर्ट किया जाता है — इसका अर्थ है "फायरिंग के रूप में नहीं देखा गया", पुष्टि किया गया सामान्य स्थिति नहीं।
get_notification_channels
कोई पैरामीटर नहीं। सभी कॉन्फ़िगर किए गए सूचना चैनल लौटाता है (Slack, PagerDuty, email, webhooks, आदि)।
did_you_mean
query(string, आवश्यक): खोजने के लिए नाम — आंशिक, गलत वर्तनी वाला, या संक्षिप्त।type(string, वैकल्पिक): इकाई प्रकार तक सीमित करें:service,environment,host,database,k8s_deployment,k8s_namespace,job।
समानता स्कोर के साथ अधिकतम 3 निकटतम मिलान लौटाता है। किसी भी टूल कॉल से पहले इसका उपयोग करें जहाँ इकाई नाम अनिश्चित हो। यदि पिछली कॉल ने खाली परिणाम लौटाए हैं, तो पुनः प्रयास करने से पहले इसे आज़माएँ।
list_dashboards
कोई पैरामीटर नहीं। संगठन में सभी कस्टम डैशबोर्ड को id, name, और मेटाडेटा के साथ JSON सरणी के रूप में लौटाता है।
get_dashboard
id(string, आवश्यक): डैशबोर्ड UUID।region(string, वैकल्पिक): पैनल क्वेरी जनसंख्या के लिए क्षेत्र। डिफ़ॉल्ट रूप से कॉन्फ़िगर किए गए डेटासोर्स क्षेत्र।
create_dashboard
dashboard(object, आवश्यक): डैशबोर्ड परिभाषाnameऔरpanels[]के साथ। प्रत्येक पैनल कोname,version,layout(x,y,w,h),visualization.type, औरqueries[]की आवश्यकता होती है।metadata(object, वैकल्पिक): डैशबोर्ड मेटाडेटा —_categoryऔर_typeफ़ील्ड (जैसे{"_category":"custom","_type":"metrics"})।
update_dashboard
id(string, आवश्यक): अद्यतन करने के लिए डैशबोर्ड UUID।dashboard(object, आवश्यक): पूर्ण प्रतिस्थापन डैशबोर्ड बॉडी (create के समान आकार)।metadata(object, वैकल्पिक): प्रतिस्थापन मेटाडेटा। केवल-पठनीय सिस्टम डैशबोर्ड 403 त्रुटि लौटाते हैं।
delete_dashboard
id(string, आवश्यक): हटाने के लिए डैशबोर्ड UUID। केवल-पठनीय सिस्टम डैशबोर्ड हटाए नहीं जा सकते।
list_dashboard_snapshots
dashboard_id(string, आवश्यक): डैशबोर्ड UUID जिसके स्नैपशॉट सूचीबद्ध करने हैं।
केवल मेटाडेटा लौटाता है (id, name, expires_at, आदि)। जमे हुए पैनल डेटा के लिए get_dashboard_snapshot का उपयोग करें।
get_dashboard_snapshot
id(string, आवश्यक): स्नैपशॉट UUID।
पूर्ण जमे हुए स्नैपशॉट लौटाता है जिसमें dashboard_definition, panel_data, time_range, और variables शामिल हैं।
delete_dashboard_snapshot
id(string, आवश्यक): हटाने के लिए स्नैपशॉट UUID।
परीक्षण
एकीकरण परीक्षण सेटअप और निर्देशों के लिए TESTING.md देखें।
