Ejemplo n.º 1
0
    instrumentation_key=os.environ['APPINSIGHTS_INSTRUMENTATION_KEY'])
metrics.set_meter_provider(MeterProvider())
meter = metrics.get_meter(__name__)
PushController(meter, metrics_exporter, 10)

tfgen_counter = meter.create_metric(
    name="tfgen_counter",
    description="mydemo namespace",
    unit="1",
    value_type=int,
    metric_type=Counter,
)


# Define cloud role
def callback_function(envelope):
    envelope.tags['ai.cloud.role'] = os.getenv('APP_NAME')
    return True


trace_exporter.add_telemetry_processor(callback_function)
metrics_exporter.add_telemetry_processor(callback_function)

while True:
    tfgen_counter.add(1, {"destination": "endpoint1"})
    requests.get(os.getenv('REMOTE_ENDPOINT1'))
    time.sleep(random.random() * 60)
    tfgen_counter.add(1, {"destination": "endpoint2"})
    requests.get(os.getenv('REMOTE_ENDPOINT2'))
    time.sleep(random.random() * 60)
Ejemplo n.º 2
0
        'CPU_LIMIT')
    envelope.data.base_data.properties['kube_memory_limit'] = os.getenv(
        'MEMORY_LIMIT')
    # Read labels
    f = open("/podinfo/labels")
    for line in f:
        key, value = line.partition("=")[::2]
        envelope.data.base_data.properties['labels.%s' % key] = value.replace(
            '"', '')
    return True


# Add Azure Monitor exporter
exporterAzure = AzureMonitorSpanExporter(
    connection_string=appInsightsConnectionString)
exporterAzure.add_telemetry_processor(azure_monitor_metadata)
trace.get_tracer_provider().add_span_processor(
    SimpleExportSpanProcessor(exporterAzure))

# Create Flask object
app = flask.Flask(__name__)

# Add automatic instrumentation
RequestsInstrumentor().instrument()
FlaskInstrumentor().instrument_app(app)
PyMySQLInstrumentor().instrument()

# Prepare database
conn = pymysql.connect(host=mySqlHost,
                       user=mySqlUsername,
                       password=mySqlPassword)