विषय पर बढ़ें

मेट्रिक्स जोड़ें

पाइडेंटिक लॉगफायर इसका उपयोग आपके एप्लिकेशन से मैट्रिक्स एकत्र करने और उन्हें मैट्रिक्स बैकएंड पर भेजने के लिए किया जा सकता है।

आइए देखें कि किसी एप्लिकेशन में मैट्रिक्स कैसे बनाएं और उपयोग करें।

import logfire

# 创建计数器指标
messages_sent = logfire.metric_counter('messages_sent')

# 增加计数器
def send_message():
    messages_sent.add(1)

संकेतक प्रकार

मेट्रिक्स संख्यात्मक मूल्यों को रिकॉर्ड करने का एक शानदार तरीका है जहां आप डेटा के समुच्चय को देखना चाहते हैं (e.g., over time) व्यक्तिगत मूल्यों के बजाय।

काउंटर

काउंटर मीट्रिक विशेष रूप से उपयोगी है जब आप किसी एप्लिकेशन में किसी विशेष घटना या स्थिति की आवृत्ति या घटनाओं की संख्या को मापना चाहते हैं।

आप निम्नलिखित की गणना करने के लिए इस मीट्रिक का उपयोग कर सकते हैं:

  • पकड़े गए अपवादों की संख्या।

  • प्राप्त अनुरोधों की संख्या।

  • संसाधित परियोजनाओं की संख्या।

काउंटर संकेतक बनाने के लिए, उपयोग करें logfire.metric_counter कार्य:

import logfire

counter = logfire.metric_counter(
    'exceptions',
    unit='1',  # (1)!
    description='Number of exceptions caught'
)

try:
    raise Exception('oops')
except Exception:
    counter.add(1)
  1. unit पैरामीटर वैकल्पिक है, लेकिन इसे निर्दिष्ट करना सबसे अच्छा है। यह काउंटर की इकाई का प्रतिनिधित्व करने वाला एक स्ट्रिंग होना चाहिए। यदि मीट्रिक है_इकाइयां_हां, आप उपयोग कर सकते हैं“1”。

इसमें पाया जा सकता है ओपनटेलीमेट्री प्रलेखन काउंटर मैट्रिक्स के बारे में और पढ़ें।

हिस्टोग्राम

हिस्टोग्राम मैट्रिक्स विशेष रूप से उपयोगी होते हैं जब आप मूल्यों के एक सेट के वितरण को मापना चाहते हैं।

आप निम्नलिखित को मापने के लिए इस मीट्रिक का उपयोग कर सकते हैं:

  • अनुरोध की अवधि।

  • फ़ाइल आकार।

  • सूची में वस्तुओं की संख्या।

हिस्टोग्राम मीट्रिक बनाने के लिए, उपयोग करें logfire.metric_histogram कार्य:

import logfire

histogram = logfire.metric_histogram(
    'request_duration',
    unit='ms',  # (1)!
    description='Duration of requests'
)

for duration in [10, 20, 30, 40, 50]:
    histogram.record(duration)
1.
unit पैरामीटर वैकल्पिक है, लेकिन इसे निर्दिष्ट करना सबसे अच्छा है। यह हिस्टोग्राम की इकाई का प्रतिनिधित्व करने वाला एक स्ट्रिंग होना चाहिए।

आप इसे पा सकते हैं ओपनटेलीमेट्री प्रलेखन हिस्टोग्राम मैट्रिक्स के बारे में और पढ़ें।

ऊपरी और निचले काउंटर

"अप-डाउन काउंटर" एक काउंटर मीट्रिक है जो वेतन वृद्धि की अनुमति देता है (up) and (down) संचालन। नियमित काउंटरों के विपरीत जो केवल वेतन वृद्धि की अनुमति देते हैं, अप-डाउन काउंटर घटना या राज्य के आधार पर बढ़ या घट सकते हैं।

आप निम्नलिखित को मापने के लिए इस मीट्रिक का उपयोग कर सकते हैं:

  • सक्रिय कनेक्शन की संख्या।

  • कतार में वस्तुओं की संख्या।

  • ऑनलाइन उपयोगकर्ताओं की संख्या।

एक ऊपरी और निचला काउंटर संकेतक बनाने के लिए, उपयोग करें logfire.metric_up_down_counter कार्य:

import logfire

active_users = logfire.metric_up_down_counter(
    'active_users',
    unit='1',  # (1)!
    description='Number of active users'
)

def user_logged_in():
    active_users.add(1)

def user_logged_out():
    active_users.add(-1)
  1. unit पैरामीटर वैकल्पिक है, लेकिन इसे निर्दिष्ट करना सबसे अच्छा है। यह ऊपरी और निचले काउंटरों की इकाइयों का प्रतिनिधित्व करने वाला एक स्ट्रिंग होना चाहिए। यदि मीट्रिक है_इकाइयां_हां, आप उपयोग कर सकते हैं“1”。

आप इसे पा सकते हैं ओपनटेलीमेट्री प्रलेखन अप-डाउन काउंटर संकेतक के बारे में और पढ़ें।

गेज

गेज मैट्रिक्स विशेष रूप से उपयोगी होते हैं जब आप अपने आवेदन में किसी विशेष स्थिति या घटना के वर्तमान मूल्य को मापना चाहते हैं। काउंटर मैट्रिक्स के विपरीत, मीटर मैट्रिक्स समय के साथ मूल्यों को जमा नहीं करते हैं।

आप निम्नलिखित को मापने के लिए इस मीट्रिक का उपयोग कर सकते हैं:

  • वर्तमान तापमान।
  • वर्तमान मेमोरी उपयोग।

  • सक्रिय कनेक्शन की वर्तमान संख्या।

  • ऑनलाइन उपयोगकर्ताओं की वर्तमान संख्या।

मीटर मैट्रिक्स बनाने के लिए, उपयोग करें logfire.metric_gauge कार्य:

import logfire

temperature = logfire.metric_gauge(
    'temperature',
    unit='°C',
    description='Temperature'
)

def set_temperature(value: float):
    temperature.set(value)

आप इसे पा सकते हैं ओपनटेलीमेट्री प्रलेखन गेज मैट्रिक्स के बारे में और पढ़ें।

कॉलबैक संकेतक

कॉलबैक मैट्रिक्स या अवलोकन योग्य मैट्रिक्स मैट्रिक्स बनाने का एक तरीका है जो समय अंतराल के आधार पर स्वचालित रूप से अपडेट किए जाते हैं।

काउंटर कॉलबैक

काउंटर कॉलबैक मीट्रिक बनाने के लिए, उपयोग करें logfire.metric_counter_callback कार्य:

import logfire
from opentelemetry.metrics import CallbackOptions, Observable


def cpu_time_callback(options: CallbackOptions) -> Iterable[Observation]:
    observations = []
    with open("/proc/stat") as procstat:
        procstat.readline()  # skip the first line
        for line in procstat:
            if not line.startswith("cpu"):
                break
            cpu, user_time, nice_time, system_time = line.split()
            observations.append(
                Observation(int(user_time) // 100, {"cpu": cpu, "state": "user"})
            )
            observations.append(
                Observation(int(nice_time) // 100, {"cpu": cpu, "state": "nice"})
            )
            observations.append(
                Observation(int(system_time) // 100, {"cpu": cpu, "state": "system"})
            )
    return observations

logfire.metric_counter_callback(
    'system.cpu.time',
    unit='s',
    callbacks=[cpu_time_callback],
    description='CPU time',
)

इसमें पाया जा सकता है ओपनटेलीमेट्री प्रलेखन काउंटर मैट्रिक्स के बारे में और पढ़ें।

मीटर कॉलबैक

मीटर मैट्रिक्स विशेष रूप से उपयोगी होते हैं जब आप किसी एप्लिकेशन में किसी विशेष स्थिति या घटना के वर्तमान मूल्य को मापना चाहते हैं। काउंटर मैट्रिक्स के विपरीत, मीटर मैट्रिक्स समय के साथ मान जमा नहीं करते हैं।

मीटर कॉलबैक संकेतक बनाने के लिए, उपयोग करें logfire.metric_gauge_callback कार्य:

import logfire


def get_temperature(room: str) -> float:
    ...


def temperature_callback(options: CallbackOptions) -> Iterable[Observation]:
    for room in ["kitchen", "living_room", "bedroom"]:
        temperature = get_temperature(room)
        yield Observation(temperature, {"room": room})


logfire.metric_gauge_callback(
    'temperature',
    unit='°C',
    callbacks=[temperature_callback],
    description='Temperature',
)

आप इसे पा सकते हैं ओपनटेलीमेट्री प्रलेखन गेज मैट्रिक्स के बारे में और पढ़ें।

अप-डाउन काउंटर कॉलबैक

यहाँ यह है।ऊपर और नीचे काउंटर संकेतक कॉलबैक संस्करण।

अप और डाउन काउंटर कॉलबैक मीट्रिक बनाने के लिए, उपयोग करें logfire.metric_up_down_counter_callback कार्य:

import logfire


def get_active_users() -> int:
    ...


def active_users_callback(options: CallbackOptions) -> Iterable[Observation]:
    active_users = get_active_users()
    yield Observation(active_users, {})


logfire.metric_up_down_counter_callback(
    'active_users',
    unit='1',
    callbacks=[active_users_callback],
    description='Number of active users',
)

आप इसे पा सकते हैं ओपनटेलीमेट्री प्रलेखन अप-डाउन काउंटर संकेतक के बारे में और पढ़ें।

सिस्टम मेट्रिक्स

डिफ़ॉल्ट रूप से, लॉगफायरसिस्टम मैट्रिक्स एकत्र नहीं किए जाते हैं।

संकेतक सक्षम करने के लिए, आपको केवल स्थापित करने की आवश्यकता है logfire[system-metrics] अतिरिक्त:

pip install 'logfire[系统指标]'
rye add logfire -E 系统指标
poetry add 'logfire[系统指标]'

यदि स्थापित है logfire[system-metrics] अतिरिक्त, लॉगफायर सिस्टम मैट्रिक्स स्वचालित रूप से एकत्र किया जाएगा।

किस सिस्टम मैट्रिक्स को एकत्र किया जाता है, इसके बारे में अधिक जानने के लिए, देखेंसिस्टम मैट्रिक्स दस्तावेज़।

up-down-counter-metric https://opentelemetry.io/docs/specs/otel/metrics/api/#updowncounter

counter-callback-metric https://opentelemetry.io/docs/specs/otel/metrics/api/#asynchronous-counter gauge-callback-metric https://opentelemetry.io/docs/specs/otel/metrics/api/#asynchronous-gauge up-down-counter-callback-metric https://opentelemetry.io/docs/specs/otel/metrics/api/#asynchronous-updowncounter [सिस्टम-मेट्रिक्स]: .. / .. / एकीकरण / system_metrics.md


本文总阅读量次