كيفية استخدام واجهة برمجة تطبيقات داتادوج

@apidog

@apidog

30 أكتوبر 2025

كيفية استخدام واجهة برمجة تطبيقات داتادوج

Apidog للمؤسسات

النشر على الخوادم المحلية

SSO و RBAC

متوافق مع SOC 2

استكشف Apidog للمؤسسات
💡
عند العمل مع واجهة برمجة تطبيقات Datadog أو أي واجهات برمجة تطبيقات أخرى، فإن وجود منصة قوية لتطوير واختبار واجهات برمجة التطبيقات أمر بالغ الأهمية. تبرز Apidog كبديل ممتاز لPostman، حيث تقدم مجموعة شاملة من الأدوات لتطوير واجهات برمجة التطبيقات.
زر

مقدمة في واجهة برمجة تطبيقات Datadog

تتيح واجهة برمجة تطبيقات Datadog الوصول البرمجي إلى قدرات المراقبة والتحليل القوية على المنصة. تسمح هذه الواجهة RESTful للمطورين بإرسال البيانات، وبناء التصورات، وإدارة حساباتهم على Datadog من خلال التعليمات البرمجية. سواء كنت تقوم بدمج تطبيقات مخصصة، أو أتمتة سير العمل، أو توسيع وظيفة Datadog، فإن فهم كيفية الاستفادة من الواجهة البرمجية أمر ضروري لتعظيم إمكانيات المنصة.

تم تصميم واجهة برمجة تطبيقات Datadog بهيكلية قائمة على الموارد تستخدم رموز استجابة HTTP القياسية، وتقبل وتعيد JSON في جميع الطلبات، وتستخدم طرق HTTP القياسية. هذا يجعلها بديهية للمطورين المألوفين بخدمات الويب RESTful. الوظائف الشاملة للواجهة تتيح العمليات القراءة والكتابة، مما يسمح لك باسترجاع بيانات المراقبة وتكوين جوانب مختلفة من بيئة Datadog الخاصة بك.

من خلال إتقان واجهة برمجة تطبيقات Datadog، ستكون قادرًا على:

بدء استخدام واجهة برمجة تطبيقات Datadog للمصادقة

قبل إجراء أي مكالمات API، ستحتاج إلى إعداد المصادقة بشكل صحيح لضمان الوصول الآمن إلى موارد Datadog الخاصة بك.

الحصول على مفاتيح واجهة برمجة تطبيقات Datadog ومفاتيح التطبيقات

لتبدأ في استخدام واجهة برمجة تطبيقات Datadog، ستحتاج إلى نوعين من المفاتيح:

  1. مفتاح API: يحدد حساب Datadog الخاص بك ويكون مطلوبًا لجميع طلبات الواجهة البرمجية.
  1. مفتاح التطبيق: مطلوب لعديد من نقاط النهاية الإدارية، ويوفر مصادقة إضافية ويحدد أذونات الوصول.

إعداد رؤوس مصادقة واجهة برمجة تطبيقات Datadog

عند إجراء طلبات API، ستحتاج إلى تضمين هذه المفاتيح كالرؤوس:

إليك مثال على طلب مصدق أساسي:

curl -X GET "<https://api.datadoghq.com/api/v1/dashboard>" \\\\
-H "Content-Type: application/json" \\\\
-H "DD-API-KEY: your_api_key_here" \\\\
-H "DD-APPLICATION-KEY: your_app_key_here"

إدارة أمان مفاتيح واجهة برمجة تطبيقات Datadog

نظرًا للوصول الكبير الذي توفره هذه المفاتيح، فإن اتباع أفضل الممارسات الأمنية أمر بالغ الأهمية:

المفاهيم الأساسية لواجهة برمجة تطبيقات Datadog

سيساعدك فهم المفاهيم الأساسية لواجهة برمجة تطبيقات Datadog على التنقل بشكل أكثر فعالية في قدراتها الواسعة.

هيكل نقاط النهاية لواجهة برمجة تطبيقات Datadog

تم تنظيم واجهة برمجة تطبيقات Datadog منطقيًا في مجالات وظيفية تعكس قدرات المنصة:

إجراء أول مكالمة لواجهة برمجة تطبيقات Datadog

لنبدأ بحالة استخدام شائعة: تقديم مقياس مخصص. يوضح هذا المثال كيفية إرسال مقياس قياسي بسيط مع علامات:

import requests
import time
import json

api_key = "your_api_key_here"
current_time = int(time.time())

payload = {
    "series": [
        {
            "metric": "custom.application.performance",
            "points": [[current_time, 100]],
            "type": "gauge",
            "tags": ["environment:production", "application:web", "region:us-east"]
        }
    ]
}

headers = {
    "Content-Type": "application/json",
    "DD-API-KEY": api_key
}

response = requests.post("<https://api.datadoghq.com/api/v1/series>",
                        headers=headers,
                        data=json.dumps(payload))

print(f"Response Status Code: {response.status_code}")
print(f"Response Body: {response.json()}")

تقوم هذه الشفرة:

فهم تنسيق استجابة واجهة برمجة تطبيقات Datadog

تتبع استجابات واجهة برمجة تطبيقات Datadog عادةً تنسيق JSON متناسق:

{
  "status": "ok",
  "errors": [],
  "data": {
    "id": "abc-123-xyz",
    "name": "مثال على المورد",
    "created_at": "2023-06-01T12:00:00.000Z",
    "modified_at": "2023-06-02T15:30:00.000Z",
    ...
  }
}

تشمل الحقول الأساسية:

حالات الاستخدام الشائعة لواجهة برمجة تطبيقات Datadog وأمثلة

دعنا نستكشف التطبيقات العملية لواجهة برمجة تطبيقات Datadog من خلال أمثلة مفصلة تغطي الوظائف الرئيسية.

استرجاع معلومات لوحة المعلومات لواجهة برمجة تطبيقات Datadog

تعتبر لوحات المعلومات مركزية لقدرات التصور في Datadog. إليك كيفية استرجاع تفاصيل حول لوحة معلومات معينة:

curl -X GET "<https://api.datadoghq.com/api/v1/dashboard/dashboard_id>" \\\\
-H "Content-Type: application/json" \\\\
-H "DD-API-KEY: your_api_key_here" \\\\
-H "DD-APPLICATION-KEY: your_app_key_here"

لإنشاء لوحة معلومات جديدة برمجيًا:

import requests
import json

api_key = "your_api_key_here"
app_key = "your_app_key_here"

dashboard_payload = {
    "title": "لوحة معلومات تم إنشاؤها عبر API",
    "description": "تم إنشاؤها عبر واجهة برمجة تطبيقات Datadog",
    "widgets": [
        {
            "definition": {
                "type": "timeseries",
                "requests": [
                    {
                        "q": "avg:system.cpu.user{*} by {host}",
                        "display_type": "line"
                    }
                ],
                "title": "استخدام وحدة المعالجة المركزية حسب المضيف"
            }
        }
    ],
    "layout_type": "ordered"
}

headers = {
    "Content-Type": "application/json",
    "DD-API-KEY": api_key,
    "DD-APPLICATION-KEY": app_key
}

response = requests.post("<https://api.datadoghq.com/api/v1/dashboard>",
                        headers=headers,
                        data=json.dumps(dashboard_payload))

print(f"تم إنشاء اللوحة مع المعرف: {response.json().get('id')}")

إنشاء مراقب باستخدام واجهة برمجة تطبيقات Datadog

تعتبر المراقبات أساسية للتنبيه الاستباقي. إليك كيفية إنشاء مراقب ينبه عندما يتجاوز استخدام وحدة المعالجة المركزية حدًا معينًا:

import requests
import json

api_key = "your_api_key_here"
app_key = "your_app_key_here"

monitor_payload = {
    "name": "تنبيه استخدام وحدة المعالجة المركزية العالية",
    "type": "تنبيه مقياس",
    "query": "avg(last_5m):avg:system.cpu.user{*} > 80",
    "message": "استخدام وحدة المعالجة المركزية فوق 80% خلال آخر 5 دقائق. @slack-alerts-channel @email.address@example.com",
    "tags": ["app:web", "env:production", "team:infrastructure"],
    "priority": 3,
    "options": {
        "notify_no_data": True,
        "no_data_timeframe": 10,
        "new_host_delay": 300,
        "evaluation_delay": 60,
        "thresholds": {
            "critical": 80,
            "warning": 70
        },
        "include_tags": True,
        "notify_audit": False,
        "require_full_window": False
    }
}

headers = {
    "Content-Type": "application/json",
    "DD-API-KEY": api_key,
    "DD-APPLICATION-KEY": app_key
}

response = requests.post("<https://api.datadoghq.com/api/v1/monitor>",
                        headers=headers,
                        data=json.dumps(monitor_payload))

print(f"حالة الاستجابة: {response.status_code}")
print(f"تم إنشاء المراقب: {response.json()}")

هذا المثال:

الاندماج مع AWS باستخدام واجهة برمجة تطبيقات Datadog

توسيع Datadog مع خدمات السحابة يمدد من قدراته في المراقبة. إليك كيفية إنشاء تكامل مع AWS:

curl -X POST "<https://api.datadoghq.com/api/v1/integration/aws>" \\\\
-H "Content-Type: application/json" \\\\
-H "DD-API-KEY: your_api_key_here" \\\\
-H "DD-APPLICATION-KEY: your_app_key_here" \\\\
-d '{
  "account_id": "your_aws_account_id",
  "role_name": "DatadogAWSIntegrationRole",
  "access_key_id": "your_access_key",
  "secret_access_key": "your_secret_key",
  "filter_tags": ["env:production", "service:critical"],
  "host_tags": ["account:main", "region:us-east-1"],
  "account_specific_namespace_rules": {
    "auto_scaling": true,
    "opsworks": false,
    "elasticache": true
  },
  "excluded_regions": ["us-west-2", "ca-central-1"]
}'

يعد إعداد هذا التكامل:

إرسال السجلات عبر واجهة برمجة تطبيقات Datadog

توفر السجلات معلومات سياقية حرجة للحل. إليك كيفية إرسال السجلات مباشرة إلى Datadog:

import requests
import json
import datetime

api_key = "your_api_key_here"

logs_payload = [{
    "ddsource": "python",
    "ddtags": "env:production,service:payment-processor,version:1.2.3",
    "hostname": "payment-service-01",
    "message": "تم إكمال عملية الدفع بنجاح للطلب #12345",
    "service": "payment-service",
    "status": "info",
    "timestamp": datetime.datetime.now().isoformat(),
    "attributes": {
        "transaction_id": "tx_789012345",
        "amount": 99.95,
        "currency": "USD",
        "customer_id": "cust_123456",
        "payment_method": "credit_card"
    }
}]

headers = {
    "Content-Type": "application/json",
    "DD-API-KEY": api_key
}

response = requests.post("<https://http-intake.logs.datadoghq.com/v1/input>",
                        headers=headers,
                        data=json.dumps(logs_payload))

print(f"استجابة تقديم السجل: {response.status_code}")

هذا المثال:

العمل مع حدود معدل واجهة برمجة تطبيقات Datadog

تفرض Datadog حدود معدل لضمان استقرار المنصة واستخدام عادل عبر العملاء. إن فهم واحترام هذه الحدود أمر بالغ الأهمية للتكامل الموثوق لواجهة برمجة التطبيقات.

فهم حدود معدل واجهة برمجة تطبيقات Datadog

تمتلك نقاط النهاية المختلفة حدود معدل مختلفة بناءً على كثافة مواردها وأنماط الاستخدام النموذجية:

مراقبة رؤوس حدود معدل واجهة برمجة تطبيقات Datadog

عند إجراء طلبات API، تحقق من هذه الرؤوس الاستجابية لفهم حالة حدود معدل الحالية لديك:

تنفيذ معالجة حدود المعدل في مكالمات واجهة برمجة تطبيقات Datadog

إليك تنفيذ قوي لمعالجة حدود المعدل باستخدام التراجع الأسي:

import requests
import time
import random

def make_api_request_with_backoff(url, headers, payload=None, max_retries=5):
    retries = 0
    while retries < max_retries:
        response = requests.post(url, headers=headers, json=payload) if payload else requests.get(url, headers=headers)

        if response.status_code == 429:  # Too Many Requests
            # استخراج معلومات حدود المعدل
            limit = response.headers.get('X-RateLimit-Limit', 'Unknown')
            remaining = response.headers.get('X-RateLimit-Remaining', 'Unknown')
            reset = int(response.headers.get('X-RateLimit-Reset', 60))

            print(f"تم الوصول إلى حد المعدل: {remaining}/{limit} طلبات متبقية. إعادة تعيين في {reset} ثانية.")

            # حساب وقت التراجع مع الاهتزاز
            backoff_time = min(2 ** retries + random.uniform(0, 1), reset)
            print(f"التراجع لمدة {backoff_time:.2f} ثانية")
            time.sleep(backoff_time)
            retries += 1
        else:
            return response

    raise Exception(f"فشل بعد {max_retries} محاولات بسبب تحديد المعدل")

استخدام مكتبات عميل واجهة برمجة تطبيقات Datadog

لراحة المستخدم، تقدم Datadog مكتبات عميل رسمية بعدة لغات، مما يبسط عملية المصادقة وتنسيق الطلبات.

عميل واجهة برمجة تطبيقات Datadog لـ Python

يوفر عميل Python الرسمي واجهة نظيفة وملائمة لـ واجهة برمجة تطبيقات Datadog:

pip install datadog-api-client

إليك مثال على تقديم المقاييس باستخدام العميل:

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v1.api.metrics_api import MetricsApi
from datadog_api_client.v1.model.metrics_payload import MetricsPayload
from datadog_api_client.v1.model.metrics_series import MetricsSeries
from datadog_api_client.v1.model.point import Point
import time

configuration = Configuration()
configuration.api_key["apiKeyAuth"] = "your_api_key_here"
configuration.api_key["appKeyAuth"] = "your_app_key_here"

with ApiClient(configuration) as api_client:
    api_instance = MetricsApi(api_client)
    body = MetricsPayload(
        series=[
            MetricsSeries(
                metric="application.request.duration",
                points=[
                    Point([int(time.time()), 250.0])
                ],
                type="gauge",
                host="web-server-01",
                tags=["endpoint:login", "environment:staging"]
            )
        ]
    )
    response = api_instance.submit_metrics(body=body)
    print(f"تم تقديم المقاييس بنجاح: {response}")

عميل واجهة برمجة تطبيقات Datadog لـ Ruby

للتطبيقات المكتوبة بلغة Ruby، تبسط مكتبة العميل الرسمية تفاعلات واجهة برمجة التطبيقات:

gem install datadog_api_client -v 2.31.1

استخدام المثال لإنشاء مراقب:

require 'datadog_api_client'

DatadogAPIClient.configure do |config|
  config.api_key = 'your_api_key_here'
  config.application_key = 'your_app_key_here'
end

api_instance = DatadogAPIClient::V1::MonitorsAPI.new
body = {
  'name' => 'مراقب اختبار API',
  'type' => 'تنبيه مقياس',
  'query' => 'avg(last_5m):avg:system.cpu.user{*} > 75',
  'message' => 'استخدام وحدة المعالجة المركزية مرتفع',
  'tags' => ['test:api', 'monitor:automated'],
  'options' => {
    'thresholds' => {
      'critical' => 75,
      'warning' => 65
    }
  }
}

begin
  result = api_instance.create_monitor(body)
  puts "تم إنشاء المراقب بنجاح مع ID: #{result['id']}"
rescue DatadogAPIClient::APIError => e
  puts "خطأ في إنشاء المراقب: #{e}"
end

أفضل الممارسات لاستخدام واجهة برمجة تطبيقات Datadog

سيساعدك اتباع هذه الإرشادات على بناء تكاملات أكثر موثوقية وأمانًا وكفاءة مع واجهة برمجة تطبيقات Datadog.

تأمين مفاتيح واجهة برمجة تطبيقات Datadog الخاصة بك

تعد حماية مفاتيح واجهة برمجة التطبيقات الخاصة بك أمرًا بالغ الأهمية:

استخدام العلامات بفعالية في مكالمات واجهة برمجة تطبيقات Datadog

تعد العلامات وسيلة قوية لتنظيم وتصنيف بيانات Datadog الخاصة بك:

تنفيذ معالجة الأخطاء لطلبات واجهة برمجة تطبيقات Datadog

تضمن معالجة الأخطاء القوية أن تظل تكاملاتك موثوقة:

def send_to_datadog(endpoint, payload, headers):
    try:
        response = requests.post(endpoint,
                                json=payload,
                                headers=headers,
                                timeout=10)
        response.raise_for_status()
        return response.json()
    except requests.exceptions.Timeout:
        print("نفذ الطلب - قد تكون واجهة برمجة تطبيقات Datadog تواجه تأخيرات")
    except requests.exceptions.HTTPError as e:
        if e.response.status_code == 400:
            print(f"طلب سيء: {e.response.json().get('errors', [])}")
        elif e.response.status_code == 403:
            print("خطأ في المصادقة - تحقق من مفاتيح API ومفاتيح التطبيقات")
        elif e.response.status_code == 429:
            print("تم الوصول إلى حد المعدل - تنفيذ التراجع وإعادة المحاولة")
        else:
            print(f"خطأ HTTP: {e.response.status_code}")
    except requests.exceptions.RequestException as e:
        print(f"فشل الطلب: {e}")

    return None

الاختبار في بيئات الاختبار باستخدام واجهة برمجة تطبيقات Datadog

قبل التنفيذ في الإنتاج:

مراقبة استخدام واجهة برمجة تطبيقات Datadog

راقب استخدام واجهة برمجة التطبيقات الخاصة بك لاكتشاف المشاكل مبكرًا:

الخاتمة: إتقان واجهة برمجة تطبيقات Datadog

تقدم واجهة برمجة تطبيقات Datadog قدرات قوية لتوسيع وتخصيص منصتك للمراقبة والتحليل. من خلال فهم عملية المصادقة، والمفاهيم الأساسية، وأفضل الممارسات الموضحة في هذا الدليل، ستكون مجهزًا جيدًا لدمج Datadog في تطبيقاتك وأتمتة سير العمل بشكل فعال.

سواء كنت ترسل مقاييس مخصصة، أو تنشئ مراقبات، أو تبني لوحات معلومات معقدة، توفر الواجهة البرمجية المرونة لتخصيص Datadog حسب احتياجاتك الخاصة. مع نضوج استخدامك، فكر في تنفيذ أنماط أكثر تقدمًا مثل:

تمكنك القدرات البرمجية المقدمة من واجهة برمجة تطبيقات Datadog من بناء نظام مراقبة يتوسع مع بنيتك التحتية ويتكيف مع متطلبات مؤسستك الفريدة.

تذكر مراجعة الوثائق الرسمية لواجهة برمجة التطبيقات الخاصة بـ Datadog بانتظام، حيث يتم إضافة نقاط نهاية وميزات جديدة بشكل متكرر لتوسيع قدرات المنصة. مع المعرفة المكتسبة من هذا الدليل، أنت مستعد لبناء حلول المراقبة المتقدمة التي تستفيد من القوة الكاملة لمنصة الرؤية البيانات الخاصة بـ Datadog.

زر

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات