Datadog लॉग इनजेक्शन API के साथ इवेंट्स इनजेस्ट करें
Datadog Log Ingestion एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (API) का उपयोग करके JSON लॉग इवेंट्स को सीधे Datadog लॉग मैनेजमेंट में भेजें। आप क्लाउड ऐप्स, माइक्रोसर्विसेज़, या किसी भी टेलीमेट्री उत्सर्जित करने वाले सिस्टम से लॉग्स इंगेस्ट कर सकते हैं। एक बार जब आप लॉग्स इंगेस्ट कर लेते हैं, तो वे कुछ ही सेकंड में Log Explorer में उपलब्ध हो जाते हैं। आप Log Pipelines का उपयोग करके उन्हें प्रोसेस, रूट और आर्काइव कर सकते हैं।
यह एंडपॉइंट संरचित और अर्ध-संरचित JSON पेलोड्स के उच्च-प्रवाह, वास्तविक-समय ग्रहण का समर्थन करता है।
इस API द्वारा समर्थित क्रियाएँ
- Datadog एजेंट इंस्टॉल किए बिना क्लाउड ऐप्स से सीधे शिप लॉग्स करें।
- इनकमिंग डेटा पर Grok Parser, Remapper और Lookup Processor जैसे पाइपलाइन प्रोसेसर लागू करें।
- सामग्री के आधार पर लॉग्स को सूचकांकों, अभिलेखागारों या अलर्ट गंतव्यों पर अग्रेषित करें।
- इस एंडपॉइंट को सैंपलिंग और फ़िल्टरिंग नियमों के साथ संयोजित करके इंडेक्सिंग लागत कम करें।
प्रमाण-पत्रों के प्रबंधन के बारे में अधिक जानकारी के लिए, Datadog API और एप्लिकेशन कुंजियाँ देखें।
शुरू करने से पहले
सुनिश्चित करें कि आपके पास है:
-
एक Datadog API कुंजी जिसमें लॉग इनजेक्शन की अनुमति हो। इसे Organization Settings → API Keys में पाएँ।
-
आपका Datadog साइट पता। यह पता क्षेत्र के अनुसार भिन्न होता है:
क्षेत्र साइट का पता यूएस (पूर्व) datadoghq.comयूएस3 (पश्चिम) us3.datadoghq.comयूएस5 (केंद्रीय) us5.datadoghq.comयूरोपीय संघ (यूरोप) datadoghq.euएपी1 (जापान) ap1.datadoghq.comएपी2 (ऑस्ट्रेलिया) ap2.datadoghq.com -
curlया Postman इंस्टॉल किया हुआ। -
JSON-स्वरूपित लॉग पेलोड।
पाइपलाइन अवलोकन
- Mermaid (छवि)
- Mermaid (कोड)
- ASCII
flowchart LR
A[क्लाउड ऐप<br/>या माइक्रोसर्विस] -->|POST /api/v2/logs| B[Datadog<br/>Log Ingestion API]
B --> C[लॉग पाइपलाइन<br/>• ग्रोक पार्सर<br/>• रिमैपर<br/>• लुकअप प्रोसेसर]
C --> D[राउटिंग इंजन<br/>• फ़िल्टर<br/>• इंडेक्स<br/>• सैंपलिंग नियम]
D --> E{{गंतव्य<br/>लॉग एक्सप्लोरर · S3 · SIEM · अलर्ट}}
[क्लाउड ऐप] POST /api/v2/logs [Datadog लॉग]
[या माइक्रोसर्विस] -------------------> [इंजेस्ट API]
|
v
[लॉग पाइपलाइन]
(पार्स, एनरिच, मास्क)
|
v
[रूटिंग इंजन]
(फ़िल्टर, इंडेक्स)
|
v
{ गंतव्य }
(एक्सप्लोरर, S3, SIEM)
इनजेस्ट एंडपॉइंट
POST https://http-intake.logs.{dd_site}/api/v2/logs
{dd_site} को अपने क्षेत्र के साइट पते से बदलें, उदाहरण के लिए, datadoghq.com या ap2.datadoghq.com।
अनुरोध हेडर
| शीर्षक | मूल्य | आवश्यक | विवरण |
|---|---|---|---|
DD-API-KEY | <your_api_key> | हाँ | आपकी Datadog API कुंजी |
Content-Type | application/json | हाँ | लोड प्रारूप |
Content-Encoding | gzip | वैकल्पिक | संपीड़ित पेलोड प्रारूप (उच्च-मात्रा वाले बैचों के लिए अनुशंसित) |
अनुरोध बॉडी
रिक्वेस्ट बॉडी एक JSON ऐरे है जिसमें एक या अधिक लॉग ऑब्जेक्ट्स होते हैं। प्रत्येक लॉग ऑब्जेक्ट निम्नलिखित फ़ील्ड्स को सपोर्ट करता है:
| क्षेत्र | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
message | string | हाँ | लॉग संदेश की मुख्य सामग्री |
ddsource | string | अनुशंसित | जिस तकनीक से लॉग उत्पन्न होता है, उदाहरण के लिए, python या nginx। |
ddtags | string | वैकल्पिक | अल्पविराम से अलग किए गए टैग, उदाहरण के लिए, env:prod,team:payments। |
hostname | string | वैकल्पिक | लॉग उत्पन्न करने वाले होस्ट का नाम |
service | string | अनुशंसित | ऐप या सेवा का नाम |
आपको message फ़ील्ड अवश्य शामिल करना चाहिए। अन्य सभी फ़ील्ड वैकल्पिक हैं, लेकिन Datadog इन्हें सुझाता है। Datadog फ़िल्टरिंग, फेसिंग और पाइपलाइन मिलान के लिए service, ddsource और ddtags का उपयोग करता है।
उदाहरण पेलोड
[
{
"message": "Transaction failed: Gateway timeout",
"ddsource": "payment-gateway",
"ddtags": "env:prod,region:us-east-1",
"hostname": "payments-host-01",
"service": "payment-gateway",
"timestamp": "2025-11-15T08:30:00Z",
"transaction_id": "txn_998877",
"customer_id": "cus_554433",
"level": "ERROR"
}
]
timestamp को अंतर्राष्ट्रीय मानकीकरण संगठन (ISO) 8601 समन्वित सार्वभौमिक समय (UTC) प्रारूप का उपयोग करना चाहिए। Datadog लॉग एक्सप्लोरर में टाइमलाइन संरेखण के लिए इस प्रारूप का उपयोग करता है। Datadog बिना timestamp के सबमिट किए गए लॉग्स को इनजेस्ट समय का उपयोग करके इंडेक्स करता है।
cURL उदाहरण
export DD_API_KEY="your_datadog_api_key_here"
export DD_SITE="datadoghq.com"
curl -X POST "https://http-intake.logs.$DD_SITE/api/v2/logs" \
-H "DD-API-KEY: $DD_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"message": "Transaction failed: Gateway timeout",
"ddsource": "payment-gateway",
"ddtags": "env:prod,region:us-east-1",
"hostname": "payments-host-01",
"service": "payment-gateway",
"level": "ERROR",
"transaction_id": "txn_998877"
}
]'
प्रतिक्रिया कोड
| Code | Status | विवरण |
|---|---|---|
202 | Accepted | लोड स्वीकार किया गया और अनुक्रमण के लिए कतारबद्ध किया गया। |
400 | Bad request | फ़ॉर्मेटिंग या सत्यापन त्रुटि |
401 / 403 | Unauthorized / Forbidden | API कुंजी अनुपस्थित (401) या अमान्य कुंजी / अपर्याप्त अनुमतियाँ (403) |
413 | Payload too large | पेलोड बिना संपीड़ित 5 एमबी से अधिक है (gzip के साथ 50 एमबी) |
429 | Too many requests | ग्रहण दर सीमा पार हो गई |
202 स्वीकार
202 Accepted प्रतिक्रिया पुष्टि करती है कि Datadog ने पेलोड प्राप्त कर लिया है। इस प्रतिक्रिया का बॉडी खाली होता है। लॉग इवेंट्स कुछ ही सेकंड में Log Explorer में दिखाई देते हैं।
HTTP/1.1 202 Accepted
400 खराब अनुरोध
डेटाडॉग यह कोड तब लौटाता है जब किसी पेलोड में स्वरूपण या सत्यापन त्रुटियाँ होती हैं:
- गलत JSON सिंटैक्स या अनएस्केप्ड कैरेक्टर।
- आवश्यक
messageफ़ील्ड अनुपस्थित है। - बिना संपीड़ित पेलोड 5 एमबी की सीमा से अधिक है।
{
"errors": ["Invalid JSON"]
}
401 अनधिकृत और 403 निषिद्ध
Datadog 401 Unauthorized लौटाता है यदि DD-API-KEY हेडर अनुपस्थित हो। Datadog 403 Forbidden लौटाता है यदि API कुंजी अमान्य हो या लॉग इनजेक्शन अनुमतियाँ न हों:
{
"errors": ["Forbidden"]
}
413 पेलोड बहुत बड़ा
Datadog तब यह कोड लौटाता है जब अनुरोध पेलोड अधिकतम आकार सीमा से अधिक हो जाता है: बिना संपीड़ित JSON के लिए 5 MB या gzip-संपीड़ित डेटा के लिए 50 MB।
{
"errors": ["Payload too large"]
}
429 बहुत अधिक अनुरोध
क्लाइंट ने अनुरोध दर सीमा पार कर दी है। अनुरोध आवृत्ति कम करें या लॉग ऑब्जेक्ट्स को एक ऐरे पेलोड में बैच करें।
कई लॉग इवेंट्स का बैचिंग
आप एक ही अनुरोध में ऐरे पास करके 1,000 लॉग प्रविष्टियाँ तक भेज सकते हैं। Datadog उच्च-थ्रूपुट सेवाओं के लिए इस दृष्टिकोण की सिफारिश करता है।
[
{
"message": "User login succeeded",
"service": "auth-service",
"ddsource": "python",
"ddtags": "env:prod",
"level": "INFO"
},
{
"message": "Transaction failed: Gateway timeout",
"service": "payment-gateway",
"ddsource": "python",
"ddtags": "env:prod",
"level": "ERROR",
"transaction_id": "txn_998877"
}
]
सीमाएँ:
- अधिकतम पेलोड आकार: 5 एमबी प्रति बिना संपीड़ित अनुरोध (
gzipसे संपीड़ित करने पर 50 एमबी) - अधिकतम व्यक्तिगत लॉग आकार: 1 एमबी
- मैक्स एरे प्रविष्टियाँ: 1,000 लॉग ऑब्जेक्ट्स
सामान्य उपयोग के मामले
- Datadog एजेंट को तैनात किए बिना माइक्रोसर्विसेज़ से लॉग्स प्राप्त करना।
- Amazon Web Services (AWS) Lambda या Google Cloud Run जैसे सर्वरलेस फ़ंक्शंस से संरचित JSON इवेंट्स भेजना।
- IoT उपकरणों या एज सेवाओं से टेलीमेट्री स्ट्रीमिंग।
- लॉग पाइपलाइन्स के माध्यम से समृद्ध घटनाओं को सुरक्षा सूचना और घटना प्रबंधन (SIEM), S3, या अलर्टिंग गंतव्यों तक रूट करना।
- निरंतर एकीकरण और निरंतर वितरण (CI/CD) पाइपलाइनों या डिप्लॉयमेंट स्क्रिप्ट्स से लॉग्स सबमिट करना।
समस्या निवारण
| समस्या | संभावित कारण | समाधान |
|---|---|---|
401 Unauthorized | गलत या अनुपस्थित एपीआई कुंजी | संगठन सेटिंग्स → एपीआई कुंजियाँ में DD_API_KEY सत्यापित करें। |
400 Bad Request | अमान्य JSON | भेजने से पहले jq . payload.json के साथ सत्यापित करें। |
| एक्सप्लोरर में लॉग न करें | लॉग को छोड़कर पाइपलाइन फ़िल्टर | फ़िल्टर साफ़ करें; इंडेक्स राउटिंग नियमों की जाँच करें |
| समय-स्टाम्प अनुक्रम से बाहर | गैर-UTC या गैर-ISO 8601 प्रारूप | "2025-11-15T08:30:00Z" प्रारूप का उपयोग करें। |
429 Too Many Requests | दर सीमा पार हो गई | Batch log objects into a single array payload |