diff --git a/tmp/compare_metrics.py b/tmp/compare_metrics.py new file mode 100644 index 00000000000..9e8b10cdfa7 --- /dev/null +++ b/tmp/compare_metrics.py @@ -0,0 +1,62 @@ +# Run the following commands first to create the JSON files: +# Run V1 Binary +# prom2json http://localhost:14269/metrics > V1_Metrics.json +# Run V2 Binary +# prom2json http://localhost:8888/metrics > V2_Metrics.json + +import json + +# Load the JSON files +v1_metrics_path = "./V1_Metrics.json" +v2_metrics_path = "./V2_Metrics.json" + +with open(v1_metrics_path, 'r') as file: + v1_metrics = json.load(file) + +with open(v2_metrics_path, 'r') as file: + v2_metrics = json.load(file) + +# Extract names and labels of the metrics +def extract_metrics_with_labels(metrics): + result = {} + for metric in metrics: + name = metric['name'] + labels = {} + if 'metrics' in metric and 'labels' in metric['metrics'][0]: + labels = metric['metrics'][0]['labels'] + result[name] = labels + return result + +v1_metrics_with_labels = extract_metrics_with_labels(v1_metrics) +v2_metrics_with_labels = extract_metrics_with_labels(v2_metrics) + +# Compare the metrics names and labels +common_metrics = {} +v1_only_metrics = {} +v2_only_metrics = {} + +for name, labels in v1_metrics_with_labels.items(): + if name in v2_metrics_with_labels: + if labels == v2_metrics_with_labels[name]: + common_metrics[name] = labels + else: + v1_only_metrics[name] = labels + else: + v1_only_metrics[name] = labels + +for name, labels in v2_metrics_with_labels.items(): + if name not in v1_metrics_with_labels: + v2_only_metrics[name] = labels + +differences = { + "common_metrics": common_metrics, + "v1_only_metrics": v1_only_metrics, + "v2_only_metrics": v2_only_metrics +} + +# Write the differences to a new JSON file +differences_path = "./differences.json" +with open(differences_path, 'w') as file: + json.dump(differences, file, indent=4) + +print(f"Differences written to {differences_path}") diff --git a/tmp/differences.json b/tmp/differences.json deleted file mode 100644 index a75bdce2d42..00000000000 --- a/tmp/differences.json +++ /dev/null @@ -1,352 +0,0 @@ -{ - "common_metrics": {}, - "v1_only_metrics": { - "go_gc_duration_seconds": {}, - "go_goroutines": {}, - "go_info": { - "version": "go1.22.5" - }, - "go_memstats_alloc_bytes": {}, - "go_memstats_alloc_bytes_total": {}, - "go_memstats_buck_hash_sys_bytes": {}, - "go_memstats_frees_total": {}, - "go_memstats_gc_sys_bytes": {}, - "go_memstats_heap_alloc_bytes": {}, - "go_memstats_heap_idle_bytes": {}, - "go_memstats_heap_inuse_bytes": {}, - "go_memstats_heap_objects": {}, - "go_memstats_heap_released_bytes": {}, - "go_memstats_heap_sys_bytes": {}, - "go_memstats_last_gc_time_seconds": {}, - "go_memstats_lookups_total": {}, - "go_memstats_mallocs_total": {}, - "go_memstats_mcache_inuse_bytes": {}, - "go_memstats_mcache_sys_bytes": {}, - "go_memstats_mspan_inuse_bytes": {}, - "go_memstats_mspan_sys_bytes": {}, - "go_memstats_next_gc_bytes": {}, - "go_memstats_other_sys_bytes": {}, - "go_memstats_stack_inuse_bytes": {}, - "go_memstats_stack_sys_bytes": {}, - "go_memstats_sys_bytes": {}, - "go_threads": {}, - "jaeger_agent_client_stats_batches_received_total": {}, - "jaeger_agent_client_stats_batches_sent_total": {}, - "jaeger_agent_client_stats_connected_clients": {}, - "jaeger_agent_client_stats_spans_dropped_total": { - "cause": "full-queue" - }, - "jaeger_agent_collector_proxy_total": { - "endpoint": "baggage", - "protocol": "grpc", - "result": "err" - }, - "jaeger_agent_connection_status_collector_connected": { - "protocol": "grpc" - }, - "jaeger_agent_connection_status_collector_reconnects_total": { - "protocol": "grpc" - }, - "jaeger_agent_http_server_errors_total": { - "source": "all", - "status": "4xx" - }, - "jaeger_agent_http_server_requests_total": { - "type": "baggage" - }, - "jaeger_agent_reporter_batch_size": { - "format": "jaeger", - "protocol": "grpc" - }, - "jaeger_agent_reporter_batches_failures_total": { - "format": "jaeger", - "protocol": "grpc" - }, - "jaeger_agent_reporter_batches_submitted_total": { - "format": "jaeger", - "protocol": "grpc" - }, - "jaeger_agent_reporter_spans_failures_total": { - "format": "jaeger", - "protocol": "grpc" - }, - "jaeger_agent_reporter_spans_submitted_total": { - "format": "jaeger", - "protocol": "grpc" - }, - "jaeger_agent_thrift_udp_server_packet_size": { - "model": "jaeger", - "protocol": "binary" - }, - "jaeger_agent_thrift_udp_server_packets_dropped_total": { - "model": "jaeger", - "protocol": "binary" - }, - "jaeger_agent_thrift_udp_server_packets_processed_total": { - "model": "jaeger", - "protocol": "binary" - }, - "jaeger_agent_thrift_udp_server_queue_size": { - "model": "jaeger", - "protocol": "binary" - }, - "jaeger_agent_thrift_udp_server_read_errors_total": { - "model": "jaeger", - "protocol": "binary" - }, - "jaeger_agent_thrift_udp_t_processor_close_time": { - "model": "jaeger", - "protocol": "binary" - }, - "jaeger_agent_thrift_udp_t_processor_handler_errors_total": { - "model": "jaeger", - "protocol": "binary" - }, - "jaeger_build_info": { - "build_date": "", - "revision": "", - "version": "" - }, - "jaeger_collector_batch_size": { - "host": "MamundiKarpar" - }, - "jaeger_collector_http_request_duration": { - "method": "other", - "path": "other", - "status": "other" - }, - "jaeger_collector_http_server_errors_total": { - "source": "all", - "status": "4xx" - }, - "jaeger_collector_http_server_requests_total": { - "type": "baggage" - }, - "jaeger_collector_in_queue_latency": { - "host": "MamundiKarpar" - }, - "jaeger_collector_queue_capacity": { - "host": "MamundiKarpar" - }, - "jaeger_collector_queue_length": { - "host": "MamundiKarpar" - }, - "jaeger_collector_save_latency": { - "host": "MamundiKarpar" - }, - "jaeger_collector_spans_bytes": { - "host": "MamundiKarpar" - }, - "jaeger_collector_spans_dropped_total": { - "host": "MamundiKarpar" - }, - "jaeger_collector_spans_received_total": { - "debug": "false", - "format": "jaeger", - "svc": "other-services", - "transport": "grpc" - }, - "jaeger_collector_spans_rejected_total": { - "debug": "false", - "format": "jaeger", - "svc": "other-services", - "transport": "grpc" - }, - "jaeger_collector_spans_saved_by_svc_total": { - "debug": "false", - "result": "err", - "svc": "other-services" - }, - "jaeger_collector_spans_serviceNames": { - "host": "MamundiKarpar" - }, - "jaeger_collector_traces_received_total": { - "debug": "false", - "format": "jaeger", - "sampler_type": "const", - "svc": "other-services", - "transport": "grpc" - }, - "jaeger_collector_traces_rejected_total": { - "debug": "false", - "format": "jaeger", - "sampler_type": "const", - "svc": "other-services", - "transport": "grpc" - }, - "jaeger_collector_traces_saved_by_svc_total": { - "debug": "false", - "result": "err", - "sampler_type": "const", - "svc": "other-services" - }, - "jaeger_query_latency": { - "operation": "find_trace_ids", - "result": "err" - }, - "jaeger_query_requests_total": { - "operation": "find_trace_ids", - "result": "err" - }, - "jaeger_query_responses": { - "operation": "find_trace_ids" - }, - "process_cpu_seconds_total": {}, - "process_max_fds": {}, - "process_open_fds": {}, - "process_resident_memory_bytes": {}, - "process_start_time_seconds": {}, - "process_virtual_memory_bytes": {}, - "process_virtual_memory_max_bytes": {} - }, - "v2_only_metrics": { - "otelcol_exporter_send_failed_spans": { - "exporter": "jaeger_storage_exporter", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_exporter_sent_spans": { - "exporter": "jaeger_storage_exporter", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_process_cpu_seconds": { - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_process_memory_rss": { - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_process_runtime_heap_alloc_bytes": { - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_process_runtime_total_alloc_bytes": { - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_process_runtime_total_sys_memory_bytes": { - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_process_uptime": { - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_processor_batch_batch_send_size": { - "processor": "batch", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_processor_batch_batch_send_size_bytes": { - "processor": "batch", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_processor_batch_metadata_cardinality": { - "processor": "batch", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_processor_batch_timeout_trigger_send": { - "processor": "batch", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_query_latency": { - "operation": "find_traces", - "result": "ok", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_query_requests": { - "operation": "find_traces", - "result": "ok", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_query_responses": { - "operation": "find_traces", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_receiver_accepted_spans": { - "receiver": "otlp", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=", - "transport": "grpc" - }, - "otelcol_receiver_refused_spans": { - "receiver": "otlp", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=", - "transport": "grpc" - }, - "otelcol_rpc_server_duration": { - "rpc_grpc_status_code": "0", - "rpc_method": "Export", - "rpc_service": "opentelemetry.proto.collector.trace.v1.TraceService", - "rpc_system": "grpc", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_rpc_server_request_size": { - "rpc_method": "Export", - "rpc_service": "opentelemetry.proto.collector.trace.v1.TraceService", - "rpc_system": "grpc", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_rpc_server_requests_per_rpc": { - "rpc_grpc_status_code": "0", - "rpc_method": "Export", - "rpc_service": "opentelemetry.proto.collector.trace.v1.TraceService", - "rpc_system": "grpc", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_rpc_server_response_size": { - "rpc_method": "Export", - "rpc_service": "opentelemetry.proto.collector.trace.v1.TraceService", - "rpc_system": "grpc", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "otelcol_rpc_server_responses_per_rpc": { - "rpc_grpc_status_code": "0", - "rpc_method": "Export", - "rpc_service": "opentelemetry.proto.collector.trace.v1.TraceService", - "rpc_system": "grpc", - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - }, - "target_info": { - "service_instance_id": "a820d496-5799-42b4-9fe2-85f9178f6743", - "service_name": "jaeger", - "service_version": "git-commit=, git-version=, build-date=" - } - } -} \ No newline at end of file