Source code for applicationinsights.channel.TelemetryContext

import platform
import locale

from applicationinsights.channel import contracts

# save off whatever is currently there
existing_device_initialize = contracts.Device._initialize


def device_initialize(self):
    """ The device initializer used to assign special properties to all device context objects"""
    existing_device_initialize(self)
    self.type = 'Other'
    self.id = platform.node()
    self.os_version = platform.version()
    self.locale = locale.getdefaultlocale()[0]


# assign the device context initializer
contracts.Device._initialize = device_initialize


[docs]class TelemetryContext(object): """Represents the context for sending telemetry to the Application Insights service. .. code:: python context = TelemetryContext() context.instrumentation_key = '<YOUR INSTRUMENTATION KEY GOES HERE>' context.application.ver = '1.2.3' context.device.id = 'My current device' context.device.oem_name = 'Asus' context.device.model = 'X31A' context.device.type = "Other" context.user.id = 'santa@northpole.net' track_trace('My trace with context') """ def __init__(self): """Initializes a new instance of the class. """ self.instrumentation_key = None self.device = contracts.Device() self.cloud = contracts.Cloud() self.application = contracts.Application() self.user = contracts.User() self.session = contracts.Session() self.operation = contracts.Operation() self.location = contracts.Location() self._properties = {} @property def properties(self): """The property context. This contains free-form properties that you can add to your telemetry. Returns: (dict). the context object. """ return self._properties