Datadog Log Ingestion API के साथ इवेंट्स इनजेस्ट करें
परिचय
क्लाउड ऐप्स, माइक्रोसर्विसेज़, या किसी भी सिस्टम से जो टेलीमेट्री उत्सर्जित करता है, JSON लॉग इवेंट्स को सीधे Datadog लॉग मैनेजमेंट में भेजने के लिए Datadog लॉग इनजेस्टन एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (API) का उपयोग करें। एक बार जब आप लॉग इनजेस्ट कर लेते हैं, तो वे कुछ ही सेकंड में Log Explorer में उपलब्ध हो जाते हैं। आप उन्हें Log Pipelines का उपयोग करके प्रोसेस, रूट और आर्काइव कर सकते हैं।
यह एंडपॉइंट संरचित और अर्ध-संरचित JSON पेलोड के उच्च-थ्रूपुट, रीयल-टाइम इनजेक्शन का समर्थन करता है।
इस API द्वारा समर्थित क्रियाएँ
- Datadog एजेंट इंस्टॉल किए बिना सीधे क्लाउड ऐप्स से लॉग भेजें।
- आने वाले डेटा पर पाइपलाइन प्रोसेसर, जैसे कि ग्रोक पार्सर, रिमैपर और लुकअप प्रोसेसर लागू करें।
- सामग्री के आधार पर लॉग को इंडेक्स, आर्काइव, या अलर्ट गंतव्यों पर रूट करें।
- इस एंडपॉइंट को सैंपलिंग और फ़िल्टरिंग नियमों के साथ संयोजित करके इंडेक्सिंग लागत कम करें।
Datadog के API और API keys के बारे में और जानें यहां।
शुरू करने से पहले
सुनिश्चित करें कि आपके पास है:
-
एक Datadog API key जिसमें लॉग इनजेस्ट करने की अनुमति हो। इसे Organization Settings → API Keys में खोजें।
-
आपका Datadog साइट पता। यह पता क्षेत्र के अनुसार भिन्न होता है:
क्षेत्र साइट पता यूएस (पूर्व) datadoghq.comयूएस3 (पश्चिम) us3.datadoghq.comयूएस5 (मध्य) us5.datadoghq.comEU (यूरोप) datadoghq.euAP1 (जापान) ap1.datadoghq.comAP2 (ऑस्ट्रेलिया) 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 | हाँ | पेलोड प्रारूप |
अनुरोध बॉडी
रिक्वेस्ट बॉडी एक या अधिक लॉग ऑब्जेक्ट्स का JSON ऐरे है। प्रत्येक लॉग ऑब्जेक्ट निम्नलिखित फ़ील्ड्स को सपोर्ट करता है:
| फ़ील्ड | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
message | string | हाँ | लॉग संदेश बॉडी |
ddsource | string | अनुशंसित | वह तकनीक जिससे लॉग उत्पन्न हुआ है, उदाहरण के लिए, python या nginx। |
ddtags | string | वैकल्पिक | अल्पविराम से अलग किए गए टैग, उदाहरण के लिए, env:prod,team:payments। |
hostname | string | वैकल्पिक | उस होस्ट का नाम जिसने लॉग उत्पन्न किया है |
service | string | अनुशंसित | ऐप या सेवा का नाम |
आपको message फ़ील्ड को शामिल करना होगा। अन्य सभी फ़ील्ड वैकल्पिक हैं लेकिन Datadog उनकी अनुशंसा करता है। Datadog फ़िल्टरिंग, फ़ेसटिंग, और पाइपलाइन मिलान के लिए service, ddsource, and 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 Log Explorer में टाइमलाइन संरेखण के लिए इस प्रारूप का उपयोग करता है। Datadog बिना timestamp के सबमिट किए गए लॉग को ingest समय का उपयोग करके इंडेक्स करता है।
प्रतिक्रिया कोड
202 स्वीकार किया गया
202 Accepted प्रतिक्रिया का अर्थ है कि Datadog ने पेलोड प्राप्त कर लिया है। इस प्रतिक्रिया में कोई बॉडी नहीं होती है। लॉग कुछ ही सेकंड में Log Explorer में दिखाई देता है।
HTTP/1.1 202 Accepted
400 खराब अनुरोध
Datadog यह कोड तब लौटाता है जब पेलोड में फ़ॉर्मेटिंग त्रुटियाँ होती हैं। सामान्य कारण:
- गलत JSON सिंटैक्स।
messageफ़ील्ड अनुपस्थित है।- पेलोड 5 एमबी की सीमा से अधिक है।
{
"errors": ["Invalid JSON"]
}
401 अनधिकृत
एपीआई कुंजी अनुपस्थित है, गलत है, या उसमें लॉग इनजेस्टन की अनुमति नहीं है।
{
"errors": ["Forbidden"]
}
429 बहुत अधिक अनुरोध
सिस्टम ने अनुरोध दर सीमा से अधिक कर दिया है। अनुरोध की आवृत्ति कम करें या लॉग ऑब्जेक्ट्स को एक ही एरे पेलोड में बैच करें।
कर्ल उदाहरण
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"
}
]'
कई लॉग इवेंट्स को बैच करना
आप एक एरे पास करके एक ही रिक्वेस्ट में 1,000 लॉग एंट्रीज़ तक भेज सकते हैं। डेटाडॉग उच्च-थ्रूपुट सेवाओं के लिए इस दृष्टिकोण की अनुशंसा करता है।
[
{
"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 MB प्रति अनुरोध
- अधिकतम व्यक्तिगत लॉग आकार: 1 MB
- अधिकतम ऐरे प्रविष्टियाँ: 1,000 लॉग ऑब्जेक्ट्स
सामान्य उपयोग के मामले
- Datadog एजेंट को डिप्लॉय किए बिना माइक्रोसर्विसेज़ से लॉग्स इंगेस्ट करना।
- Amazon Web Services (AWS) Lambda या Google Cloud Platform (GCP) Cloud Run जैसे सर्वरलेस फ़ंक्शंस से संरचित JSON इवेंट्स भेजना।
- IoT डिवाइस या एज सर्विसेज़ से टेलीमेट्री स्ट्रीमिंग करना।
- लॉग पाइपलाइन्स के माध्यम से सुरक्षा सूचना और इवेंट प्रबंधन (SIEM), S3, या अलर्टिंग डेस्टिनेशन्स को एनरिच्ड इवेंट्स रूट करना।
- कंटीन्यूअस इंटीग्रेशन और कंटीन्यूअस डिलीवरी (CI/CD) पाइपलाइनों या डिप्लॉयमेंट स्क्रिप्ट्स से लॉग सबमिट करना।
समस्या निवारण
| समस्या | संभावित कारण | समाधान |
|---|---|---|
401 Unauthorized | गलत या गुम API कुंजी | ऑर्ग सेटिंग्स → API कुंजियाँ में DD_API_KEY सत्यापित करें |
400 Bad Request | गड़बड़ JSON | भेजने से पहले jq . payload.json के साथ मान्य करें |
| एक्सप्लोरर में लॉग नहीं है | पाइपलाइन फ़िल्टर लॉग को बाहर कर रहा है | फ़िल्टर साफ़ करें; इंडेक्स रूटिंग नियमों की जाँच करें |
| टाइमस्टैम्प क्रम से बाहर है | गैर-UTC या गैर-ISO 8601 प्रारूप | "2025-11-15T08:30:00Z" प्रारूप का उपयोग करें |
429 बहुत अधिक अनुरोध | दर सीमा पार हो गई | लॉग ऑब्जेक्ट्स को एक ही एरे पेलोड में बैच करें |