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)
'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)