Delen via


Azure Monitor instellen voor uw Python-toepassing

Let op

De OpenCensus Python SDK wordt buiten gebruik gesteld. We raden u aan de Python-aanbieding op basis van OpenTelemetry te gebruiken en migratierichtlijnen te bieden.

Azure Monitor ondersteunt gedistribueerde tracering, metrische verzameling en logboekregistratie van Python-toepassingen.

De ondersteunde oplossing van Microsoft voor het bijhouden en exporteren van gegevens voor uw Python-toepassingen vindt plaats via de OpenCensus Python SDK via de Azure Monitor-exporteurs.

Microsoft raadt het gebruik van andere telemetrie-SDK's voor Python niet aan als telemetrieoplossing omdat ze niet worden ondersteund.

OpenCensus wordt samengevoegd in OpenTelemetry. We blijven OpenCensus aanbevelen terwijl OpenTelemetry geleidelijk verder wordt ontwikkeld.

Vereisten

U hebt een Azure-abonnement nodig. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Notitie

Op 31 maart 2025 eindigt de ondersteuning voor opname van instrumentatiesleutels. Opname van instrumentatiesleutels blijft werken, maar we bieden geen updates of ondersteuning meer voor de functie. Overgang naar verbindingsreeks s om te profiteren van nieuwe mogelijkheden.

Inleiding tot OpenCensus Python SDK

OpenCensus is een set opensource-bibliotheken voor het verzamelen van gedistribueerde tracering, metrische gegevens en logboekregistratietelemetrie. Met behulp van Azure Monitor-exporteurs kunt u deze verzamelde telemetrie verzenden naar Application Insights. Dit artikel begeleidt u bij het instellen van OpenCensus- en Azure Monitor-exporteurs voor Python om uw bewakingsgegevens naar Azure Monitor te verzenden.

Instrument met OpenCensus Python SDK met Azure Monitor-exporteurs

Installeer de OpenCensus Azure Monitor-exporteurs:

python -m pip install opencensus-ext-azure

De SDK gebruikt drie Azure Monitor-exporteurs om verschillende typen telemetrie naar Azure Monitor te verzenden. Ze zijn trace, metricsen logs. Zie het overzicht van het gegevensplatform voor meer informatie over deze telemetrietypen. Gebruik de volgende instructies om deze telemetrietypen via de drie exporteurs te verzenden.

Toewijzingen van telemetrietypen

OpenCensus wijst de volgende exporteurs toe aan de typen telemetrie die u in Azure Monitor ziet.

Pijler van waarneembaarheid Telemetrietype in Azure Monitor Uitleg
Logboeken Traceringen, uitzonderingen, customEvents Logboektelemetrie, uitzonderingstelemetrie, gebeurtenistelemetrie
Metrische gegevens voor customMetrics, performanceCounters Prestatiemeteritems voor aangepaste metrische gegevens
Tracering Afhankelijkheden aanvragen Binnenkomende aanvragen, uitgaande aanvragen

Logboeken

  1. Eerst gaan we enkele lokale logboekgegevens genereren.

    
    import logging
    
    logger = logging.getLogger(__name__)
    
    def main():
        """Generate random log data."""
        for num in range(5):
            logger.warning(f"Log Entry - {num}")
    
    if __name__ == "__main__":
        main()
    
  2. Er wordt een logboekvermelding verzonden voor elk getal in het bereik.

    Log Entry - 0
    Log Entry - 1
    Log Entry - 2
    Log Entry - 3
    Log Entry - 4
    
  3. We willen deze logboekgegevens naar Azure Monitor zien. U kunt deze opgeven in een omgevingsvariabele. APPLICATIONINSIGHTS_CONNECTION_STRING U kunt de connection_string ook rechtstreeks doorgeven aan het AzureLogHandlerbesturingselement, maar verbindingsreeks s mogen niet worden toegevoegd aan versiebeheer.

    APPLICATIONINSIGHTS_CONNECTION_STRING=<appinsights-connection-string>
    

    U wordt aangeraden de verbindingsreeks te gebruiken om de exporteurs te instantiëren die worden gebruikt voor het verzenden van telemetrie naar Application Insights. Wijzig uw code uit de vorige stap op basis van het volgende codevoorbeeld:

    import logging
    from opencensus.ext.azure.log_exporter import AzureLogHandler
    
    logger = logging.getLogger(__name__)
    logger.addHandler(AzureLogHandler())
    
    # Alternatively manually pass in the connection_string
    # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))
    
    """Generate random log data."""
    for num in range(5):
        logger.warning(f"Log Entry - {num}")
    
  4. De exporteur verzendt logboekgegevens naar Azure Monitor. U vindt de gegevens onder traces.

    In deze context traces is dit niet hetzelfde als tracing. traces Hier verwijst u naar het type telemetrie dat u in Azure Monitor ziet wanneer u deze gebruiktAzureLogHandler. Maar tracing verwijst naar een concept in OpenCensus en heeft betrekking op gedistribueerde tracering.

    Notitie

    De hoofdlogger is geconfigureerd met het niveau van warning. Dat betekent dat alle logboeken die u verzendt die minder ernst hebben, worden genegeerd en op hun beurt niet naar Azure Monitor worden verzonden. Zie de documentatie voor logboekregistratie voor meer informatie.

  5. U kunt ook aangepaste eigenschappen toevoegen aan uw logboekberichten in het extra trefwoordargument met behulp van het custom_dimensions veld. Deze eigenschappen worden weergegeven als sleutel-waardeparen in customDimensions Azure Monitor.

    Notitie

    Deze functie werkt alleen als u een woordenlijst aan het custom_dimensions veld doorgeeft. Als u argumenten van een ander type doorgeeft, negeert de logger deze.

    import logging
    
    from opencensus.ext.azure.log_exporter import AzureLogHandler
    
    logger = logging.getLogger(__name__)
    logger.addHandler(AzureLogHandler())
    # Alternatively manually pass in the connection_string
    # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))
    
    properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}
    
    # Use properties in logging statements
    logger.warning('action', extra=properties)
    

Notitie

Als onderdeel van het gebruik van Application Insights-instrumentatie verzamelen en verzenden we diagnostische gegevens naar Microsoft. Met deze gegevens kunnen we Application Insights uitvoeren en verbeteren. U kunt niet-essentiële gegevensverzameling uitschakelen. Zie Statsbeat in Application Insights voor meer informatie.

Logboekregistratie configureren voor Django-toepassingen

U kunt logboekregistratie expliciet configureren in uw toepassingscode, zoals de voorgaande voor uw Django-toepassingen, of u kunt deze opgeven in de logboekregistratieconfiguratie van Django. Deze code kan gaan naar het bestand dat u gebruikt voor de configuratie van de instellingen van de Django-site, meestal settings.py.

Zie Django-instellingen voor meer informatie over het configureren van Django-instellingen. Zie Django-logboekregistratie voor meer informatie over het configureren van logboekregistratie.

LOGGING = {
    "handlers": {
        "azure": {
            "level": "DEBUG",
            "class": "opencensus.ext.azure.log_exporter.AzureLogHandler",
            "connection_string": "<appinsights-connection-string>",
        },
        "console": {
            "level": "DEBUG",
            "class": "logging.StreamHandler",
            "stream": sys.stdout,
        },
      },
    "loggers": {
        "logger_name": {"handlers": ["azure", "console"]},
    },
}

Zorg ervoor dat u de logboekregistratie gebruikt met dezelfde naam als de logboekregistratie die in uw configuratie is opgegeven.

# views.py

import logging
from django.shortcuts import request

logger = logging.getLogger("logger_name")
logger.warning("this will be tracked")

Uitzonderingen verzenden

OpenCensus Python houdt telemetrie niet automatisch bij en verzendt exception deze niet. Het wordt verzonden AzureLogHandler met behulp van uitzonderingen via de Python-logboekregistratiebibliotheek. U kunt aangepaste eigenschappen zoals u doet met normale logboekregistratie toevoegen.

import logging

from opencensus.ext.azure.log_exporter import AzureLogHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler())
# Alternatively, manually pass in the connection_string
# logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))

properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}

# Use properties in exception logs
try:
    result = 1 / 0  # generate a ZeroDivisionError
except Exception:
    logger.exception('Captured an exception.', extra=properties)

Omdat u expliciet uitzonderingen moet registreren, is het aan u om niet-verwerkte uitzonderingen te registreren. OpenCensus plaatst geen beperkingen voor het uitvoeren van deze logboekregistratie, maar u moet expliciet uitzonderingstelemetrie vastleggen.

Gebeurtenissen verzenden

U kunt telemetrie op exact dezelfde manier verzenden customEvent als u telemetrie verzendt trace , behalve met behulp van in plaats daarvan AzureEventHandler .

import logging
from opencensus.ext.azure.log_exporter import AzureEventHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureEventHandler())
# Alternatively manually pass in the connection_string
# logger.addHandler(AzureEventHandler(connection_string=<appinsights-connection-string>))

logger.setLevel(logging.INFO)
logger.info('Hello, World!')

Steekproeven

Zie Sampling in OpenCensus voor informatie over steekproeven in OpenCensus.

Logboekcorrelatie

Zie De integratie van OpenCensus Python-logboeken voor informatie over het verrijken van uw logboeken met traceringscontextgegevens.

Telemetrie wijzigen

Zie OpenCensus Python-telemetrieprocessors voor informatie over het wijzigen van bijgehouden telemetrie voordat deze naar Azure Monitor wordt verzonden.

Metrische gegevens voor

OpenCensus.stats ondersteunt vier aggregatiemethoden, maar biedt gedeeltelijke ondersteuning voor Azure Monitor:

  • Aantal: Het aantal meetpunten. De waarde is cumulatief, kan alleen toenemen en wordt opnieuw ingesteld op 0 bij opnieuw opstarten.
  • Som: Een samenvatting van de meetpunten. De waarde is cumulatief, kan alleen toenemen en wordt opnieuw ingesteld op 0 bij opnieuw opstarten.
  • LastValue: hiermee blijft de laatst vastgelegde waarde behouden en worden alle andere waarden verwijderd.
  • Distributie: De Azure-exporteur biedt geen ondersteuning voor de histogramverdeling van de meetpunten.

Voorbeeld van aggregatie tellen

  1. Eerst gaan we enkele lokale metrische gegevens genereren. We maken een metrische waarde om het aantal keren bij te houden dat de gebruiker de Enter-toets selecteert.

    
    from datetime import datetime
    from opencensus.stats import aggregation as aggregation_module
    from opencensus.stats import measure as measure_module
    from opencensus.stats import stats as stats_module
    from opencensus.stats import view as view_module
    from opencensus.tags import tag_map as tag_map_module
    
    stats = stats_module.stats
    view_manager = stats.view_manager
    stats_recorder = stats.stats_recorder
    
    prompt_measure = measure_module.MeasureInt("prompts",
                                               "number of prompts",
                                               "prompts")
    prompt_view = view_module.View("prompt view",
                                   "number of prompts",
                                   [],
                                   prompt_measure,
                                   aggregation_module.CountAggregation())
    view_manager.register_view(prompt_view)
    mmap = stats_recorder.new_measurement_map()
    tmap = tag_map_module.TagMap()
    
    def main():
        for _ in range(4):
            mmap.measure_int_put(prompt_measure, 1)
            mmap.record(tmap)
            metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow()))
            print(metrics[0].time_series[0].points[0])
    
    if __name__ == "__main__":
        main()
    
  2. Metrische gegevens worden gemaakt om meerdere keren bij te houden. Bij elke vermelding wordt de waarde verhoogd en worden de metrische gegevens weergegeven in de console. De informatie bevat de huidige waarde en het huidige tijdstempel waarop de metrische waarde is bijgewerkt.

    Point(value=ValueLong(5), timestamp=2019-10-09 20:58:04.930426)
    Point(value=ValueLong(6), timestamp=2019-10-09 20:58:05.170167)
    Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.438614)
    Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.834216)
    
  3. Het invoeren van waarden is handig voor demonstratiedoeleinden, maar we willen de metrische gegevens verzenden naar Azure Monitor. Geef uw verbindingsreeks rechtstreeks door aan de exporteur. U kunt deze ook opgeven in een omgevingsvariabele. APPLICATIONINSIGHTS_CONNECTION_STRING U wordt aangeraden de verbindingsreeks te gebruiken om de exporteurs te instantiëren die worden gebruikt voor het verzenden van telemetrie naar Application Insights. Wijzig uw code uit de vorige stap op basis van het volgende codevoorbeeld:

    from datetime import datetime
    from opencensus.ext.azure import metrics_exporter
    from opencensus.stats import aggregation as aggregation_module
    from opencensus.stats import measure as measure_module
    from opencensus.stats import stats as stats_module
    from opencensus.stats import view as view_module
    from opencensus.tags import tag_map as tag_map_module
    
    stats = stats_module.stats
    view_manager = stats.view_manager
    stats_recorder = stats.stats_recorder
    
    prompt_measure = measure_module.MeasureInt("prompts",
                                               "number of prompts",
                                               "prompts")
    prompt_view = view_module.View("prompt view",
                                   "number of prompts",
                                   [],
                                   prompt_measure,
                                   aggregation_module.CountAggregation())
    view_manager.register_view(prompt_view)
    mmap = stats_recorder.new_measurement_map()
    tmap = tag_map_module.TagMap()
    
    exporter = metrics_exporter.new_metrics_exporter()
    # Alternatively manually pass in the connection_string
    # exporter = metrics_exporter.new_metrics_exporter(connection_string='<appinsights-connection-string>')
    
    view_manager.register_exporter(exporter)
    
    def main():
        for _ in range(10):
            input("Press enter.")
            mmap.measure_int_put(prompt_measure, 1)
            mmap.record(tmap)
            metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow()))
            print(metrics[0].time_series[0].points[0])
    
    if __name__ == "__main__":
        main()
    
  4. De exporteur verzendt met een vast interval metrische gegevens naar Azure Monitor. U moet deze waarde instellen op 60 seconden, omdat de Application Insights-back-end ervan uitgaat dat metrische gegevenspunten worden geaggregeerd op een interval van 60 seconden. We volgen één metrische waarde, dus deze metrische gegevens, met elke waarde en tijdstempel die deze bevat, worden elk interval verzonden. De gegevens zijn cumulatief, kunnen alleen worden verhoogd en opnieuw worden ingesteld op 0 bij opnieuw opstarten.

    U vindt de gegevens ondercustomMetrics, maar de customMetrics eigenschappenvalueCount, valueSum, , valueMinen valueMaxvalueStdDev worden niet effectief gebruikt.

Aangepaste dimensies instellen in metrische gegevens

Met de OpenCensus Python SDK kunt u aangepaste dimensies toevoegen aan uw telemetriegegevens met behulp van tagseen woordenlijst met sleutel-waardeparen.

  1. Voeg de tags in die u wilt gebruiken in de tagkaart. De tagkaart fungeert als een soort 'pool' van alle beschikbare tags die u kunt gebruiken.

    ...
    tmap = tag_map_module.TagMap()
    tmap.insert("url", "http://example.com")
    ...
    
  2. Geef voor een specifieke Viewcode de tags op die u wilt gebruiken wanneer u metrische gegevens opneemt met die weergave via de tagsleutel.

    ...
    prompt_view = view_module.View("prompt view",
                                "number of prompts",
                                ["url"], # <-- A sequence of tag keys used to specify which tag key/value to use from the tag map
                                prompt_measure,
                                aggregation_module.CountAggregation())
    ...
    
  3. Zorg ervoor dat u de tagkaart gebruikt wanneer u opneemt in de metingskaart. De tagsleutels die in de View tag zijn opgegeven, moeten worden gevonden in de tagkaart die wordt gebruikt om op te nemen.

    ...
    mmap = stats_recorder.new_measurement_map()
    mmap.measure_int_put(prompt_measure, 1)
    mmap.record(tmap) # <-- pass the tag map in here
    ...
    
  4. Onder de customMetrics tabel zijn alle metrische records die worden verzonden met behulp van prompt_view aangepaste dimensies {"url":"http://example.com"}.

  5. Als u tags met verschillende waarden wilt produceren met behulp van dezelfde sleutels, maakt u er nieuwe tagtoewijzingen voor.

    ...
    tmap = tag_map_module.TagMap()
    tmap2 = tag_map_module.TagMap()
    tmap.insert("url", "http://example.com")
    tmap2.insert("url", "https://www.wikipedia.org/wiki/")
    ...
    

Prestatiemeteritems

De exporteur van metrische gegevens verzendt standaard een set prestatiemeteritems naar Azure Monitor. U kunt deze mogelijkheid uitschakelen door de enable_standard_metrics vlag False in te stellen in de constructor van de exportfunctie voor metrische gegevens.

...
exporter = metrics_exporter.new_metrics_exporter(
  enable_standard_metrics=False,
  )
...

De volgende prestatiemeteritems worden momenteel verzonden:

  • Beschikbaar geheugen (bytes)
  • CPU-processortijd (percentage)
  • Tarief voor binnenkomende aanvragen (per seconde)
  • Gemiddelde uitvoeringstijd van binnenkomende aanvragen (milliseconden)
  • CPU-gebruik verwerken (percentage)
  • Privébytes verwerken (bytes)

U moet deze metrische gegevens kunnen zien in performanceCounters. Zie Prestatiemeteritems voor meer informatie.

Telemetrie wijzigen

Zie OpenCensus Python-telemetrieprocessors voor informatie over het wijzigen van bijgehouden telemetrie voordat deze naar Azure Monitor wordt verzonden.

Tracering

Notitie

In OpenCensus tracing verwijst u naar gedistribueerde tracering. De AzureExporter parameter verzendt requests en dependency telemetrie naar Azure Monitor.

  1. Eerst gaan we enkele traceringsgegevens lokaal genereren. Voer in Python IDLE of de gewenste editor de volgende code in:

    from opencensus.trace.samplers import ProbabilitySampler
    from opencensus.trace.tracer import Tracer
    
    tracer = Tracer(sampler=ProbabilitySampler(1.0))
    
    def main():
        with tracer.span(name="test") as span:
            for value in range(5):
                print(value)
    
    
    if __name__ == "__main__":
        main()
    
  2. Bij elke vermelding wordt de waarde afgedrukt naar de shell. De OpenCensus Python-module genereert een bijbehorend stukje SpanData. Het Project OpenCensus definieert een tracering als een boom van spanten.

    0
    [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='15ac5123ac1f6847', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:22.805429Z', end_time='2019-06-27T18:21:44.933405Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
    1
    [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='2e512f846ba342de', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:44.933405Z', end_time='2019-06-27T18:21:46.156787Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
    2
    [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='f3f9f9ee6db4740a', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:46.157732Z', end_time='2019-06-27T18:21:47.269583Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
    
  3. Het weergeven van de uitvoer is handig voor demonstratiedoeleinden, maar we willen verzenden SpanData naar Azure Monitor. Geef uw verbindingsreeks rechtstreeks door aan de exporteur. U kunt deze ook opgeven in een omgevingsvariabele. APPLICATIONINSIGHTS_CONNECTION_STRING U wordt aangeraden de verbindingsreeks te gebruiken om de exporteurs te instantiëren die worden gebruikt voor het verzenden van telemetrie naar Application Insights. Wijzig uw code uit de vorige stap op basis van het volgende codevoorbeeld:

    from opencensus.ext.azure.trace_exporter import AzureExporter
    from opencensus.trace.samplers import ProbabilitySampler
    from opencensus.trace.tracer import Tracer
    
    tracer = Tracer(
        exporter=AzureExporter(),
        sampler=ProbabilitySampler(1.0),
    )
    # Alternatively manually pass in the connection_string
    # exporter = AzureExporter(
    #   connection_string='<appinsights-connection-string>',
    #   ...
    # )
    
    def main():
        with tracer.span(name="test") as span:
            for value in range(5):
                print(value)
    
    if __name__ == "__main__":
        main()
    
  4. Wanneer u nu het Python-script uitvoert, wordt alleen de waarde in de shell afgedrukt. Het gemaakte SpanData bestand wordt verzonden naar Azure Monitor. U vindt de verzonden spangegevens onder dependencies.

    Zie OpenCensus Python-afhankelijkheden voor meer informatie over uitgaande aanvragen. Zie OpenCensus Python-aanvragen voor meer informatie over binnenkomende aanvragen.

Steekproeven

Zie Sampling in OpenCensus voor informatie over steekproeven in OpenCensus.

Correlatie traceren

Zie OpenCensus Python-telemetriecorrelatie voor meer informatie over telemetriecorrelatie met telemetriegegevens in uw traceringsgegevens.

Telemetrie wijzigen

Zie OpenCensus Python-telemetrieprocessors voor meer informatie over het wijzigen van bijgehouden telemetrie voordat deze naar Azure Monitor wordt verzonden.

Azure Monitor-exporteurs configureren

Zoals u ziet, zijn er drie verschillende Azure Monitor-exporteurs die OpenCensus ondersteunen. Elk type telemetrie verzendt naar Azure Monitor. Zie de volgende tabel om te zien welke typen telemetrie elke exporteur verzendt.

Elke exporteur accepteert dezelfde argumenten voor de configuratie, doorgegeven via de constructors. U kunt hier informatie over elke informatie bekijken:

Telemetrie van exporteur Beschrijving
connection_string De verbindingsreeks gebruikt om verbinding te maken met uw Azure Monitor-resource. Neemt prioriteit boven instrumentation_key.
credential Referentieklasse die wordt gebruikt door Azure Active Directory-verificatie. Zie de sectie Verificatie die volgt.
enable_standard_metrics Wordt gebruikt voor AzureMetricsExporter. Geeft aan dat de exporteur automatisch prestatiemeteritems naar Azure Monitor verzendt. Standaard ingesteld op True.
export_interval Wordt gebruikt om de frequentie in seconden van exporteren op te geven. Standaard ingesteld op 15s. Voor metrische gegevens moet u deze instellen op 60 seconden of anders zijn uw metrische aggregaties niet logisch in de metrics Explorer.
grace_period Wordt gebruikt om de time-out voor het afsluiten van exporteurs in seconden op te geven. Standaard ingesteld op 5s.
instrumentation_key De instrumentatiesleutel die wordt gebruikt om verbinding te maken met uw Azure Monitor-resource.
logging_sampling_rate Wordt gebruikt voor AzureLogHandler en AzureEventHandler. Biedt een steekproeffrequentie [0,1.0] voor het exporteren van logboeken/gebeurtenissen. Standaard ingesteld op 1.0.
max_batch_size Hiermee geeft u de maximale grootte van telemetrie die tegelijk wordt geëxporteerd.
proxies Hiermee geeft u een reeks proxy's op die moeten worden gebruikt voor het verzenden van gegevens naar Azure Monitor. Zie proxy's voor meer informatie.
storage_path Een pad naar de locatie waar de lokale opslagmap bestaat (niet-verzonden telemetrie). Vanaf opencensus-ext-azure v1.0.3 is het standaardpad de tijdelijke map van het besturingssysteem + + opencensus-pythonyour-ikey . Vóór v1.0.3 is $USER.azurepython-file-name + .opencensus + + het standaardpad.
timeout Hiermee geeft u de netwerktime-out voor het verzenden van telemetrie naar de opnameservice in seconden. Standaard ingesteld op 10s.

Integreren met Azure Functions

Als u aangepaste telemetrie in Azure Functions-omgevingen wilt vastleggen, gebruikt u de Azure Functions-extensie OpenCensus Python. Zie de ontwikkelaarshandleiding voor Azure Functions Python voor meer informatie.

Verificatie (preview)

Notitie

De verificatiefunctie is beschikbaar vanaf opencensus-ext-azure v1.1b0.

Elk van de Azure Monitor-exporteurs ondersteunt de configuratie van veilig verzenden van telemetrieladingen via OAuth-verificatie met Azure Active Directory. Zie de verificatiedocumentatie voor meer informatie.

Uw gegevens weergeven met query's

U kunt de telemetriegegevens bekijken die vanuit uw toepassing zijn verzonden via het tabblad Logboeken (Analyse).

Schermopname van het deelvenster Overzicht met het tabblad Logboeken (Analytics) geselecteerd.

In de lijst onder Actief:

  • Voor telemetrie die wordt verzonden met de Azure Monitor-traceerexporteur, worden binnenkomende aanvragen weergegeven onder requests. Uitgaande of in-process aanvragen worden weergegeven onder dependencies.
  • Verzonden metrische gegevensexporteur van Azure Monitor worden onder customMetricsverzonden metrische gegevens weergegeven voor telemetrie die wordt verzonden met de exporteur van metrische gegevens van Azure Monitor.
  • Voor telemetrie die wordt verzonden met de Azure Monitor-logboekexporteur, worden logboeken weergegeven onder traces. Uitzonderingen worden weergegeven onder exceptions.

Zie Logboeken in Azure Monitor voor meer informatie over het gebruik van query's en logboeken.

Verificatie op basis van Microsoft Entra-id configureren en inschakelen

Notitie

Microsoft Entra-verificatie is alleen beschikbaar voor Python v2.7, v3.6 en v3.7. Ondersteuning voor Microsoft Entra ID in de Application Insights OpenCensus Python SDK is opgenomen vanaf bètaversie opencensus-ext-azure 1.1b0.

Bouw de juiste referenties en geef deze door aan de constructor van de Azure Monitor-exporteur. Zorg ervoor dat uw verbindingsreeks is ingesteld met de instrumentatiesleutel en het opname-eindpunt van uw resource.

De OpenCensus Azure Monitor-exporteurs ondersteunen deze verificatietypen. U wordt aangeraden beheerde identiteiten te gebruiken in productieomgevingen.

Door het systeem toegewezen beheerde identiteit

from azure.identity import ManagedIdentityCredential

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

credential = ManagedIdentityCredential()
tracer = Tracer(
    exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
    sampler=ProbabilitySampler(1.0)
)
...

Door de gebruiker toegewezen beheerde identiteit

from azure.identity import ManagedIdentityCredential

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

credential = ManagedIdentityCredential(client_id="<client-id>")
tracer = Tracer(
    exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
    sampler=ProbabilitySampler(1.0)
)
...

Meer informatie over OpenCensus voor Python

Probleemoplossing

Connectiviteit testen tussen uw toepassingshost en de opnameservice

Application Insights SDK's en agents verzenden telemetrie om opgenomen te worden als REST-aanroepen naar onze opname-eindpunten. U kunt de connectiviteit vanaf uw webserver of toepassingshostcomputer testen op de service-eindpunten voor opname met behulp van onbewerkte REST-clients uit PowerShell- of curl-opdrachten. Zie Problemen met ontbrekende toepassingstelemetrie oplossen in Azure Monitor Application Insights.

Opmerkingen bij de release

Zie Python Azure Monitor Exporter voor de meest recente opmerkingen bij de release

Onze service-updates geven ook een overzicht van belangrijke Application Insights-verbeteringen.

Volgende stappen

Waarschuwingen

  • Beschikbaarheidsoverzicht: Maak tests om ervoor te zorgen dat uw site zichtbaar is op het web.
  • Slimme diagnostische gegevens: deze tests worden automatisch uitgevoerd, zodat u niets hoeft te doen om ze in te stellen. Deze geeft aan of een app een ongebruikelijk aantal mislukte aanvragen heeft.
  • Metrische waarschuwingen: stel waarschuwingen in om u te waarschuwen als een metrische waarde een drempelwaarde overschrijdt. U kunt deze instellen op aangepaste metrische gegevens die u in uw app codeert.