77
77
import psutil
78
78
79
79
from opentelemetry ._metrics import get_meter
80
- from opentelemetry ._metrics .measurement import Measurement
80
+
81
+ # FIXME Remove this pyling disabling line when Github issue is cleared
82
+ # pylint: disable=no-name-in-module
83
+ from opentelemetry ._metrics .observation import Observation
81
84
from opentelemetry .instrumentation .instrumentor import BaseInstrumentor
82
85
from opentelemetry .instrumentation .system_metrics .package import _instruments
83
86
from opentelemetry .instrumentation .system_metrics .version import __version__
@@ -318,18 +321,18 @@ def _instrument(self, **kwargs):
318
321
def _uninstrument (self , ** __ ):
319
322
pass
320
323
321
- def _get_system_cpu_time (self ) -> Iterable [Measurement ]:
324
+ def _get_system_cpu_time (self ) -> Iterable [Observation ]:
322
325
"""Observer callback for system CPU time"""
323
326
for cpu , times in enumerate (psutil .cpu_times (percpu = True )):
324
327
for metric in self ._config ["system.cpu.time" ]:
325
328
if hasattr (times , metric ):
326
329
self ._system_cpu_time_labels ["state" ] = metric
327
330
self ._system_cpu_time_labels ["cpu" ] = cpu + 1
328
- yield Measurement (
331
+ yield Observation (
329
332
getattr (times , metric ), self ._system_cpu_time_labels
330
333
)
331
334
332
- def _get_system_cpu_utilization (self ) -> Iterable [Measurement ]:
335
+ def _get_system_cpu_utilization (self ) -> Iterable [Observation ]:
333
336
"""Observer callback for system CPU utilization"""
334
337
335
338
for cpu , times_percent in enumerate (
@@ -339,95 +342,95 @@ def _get_system_cpu_utilization(self) -> Iterable[Measurement]:
339
342
if hasattr (times_percent , metric ):
340
343
self ._system_cpu_utilization_labels ["state" ] = metric
341
344
self ._system_cpu_utilization_labels ["cpu" ] = cpu + 1
342
- yield Measurement (
345
+ yield Observation (
343
346
getattr (times_percent , metric ) / 100 ,
344
347
self ._system_cpu_utilization_labels ,
345
348
)
346
349
347
- def _get_system_memory_usage (self ) -> Iterable [Measurement ]:
350
+ def _get_system_memory_usage (self ) -> Iterable [Observation ]:
348
351
"""Observer callback for memory usage"""
349
352
virtual_memory = psutil .virtual_memory ()
350
353
for metric in self ._config ["system.memory.usage" ]:
351
354
self ._system_memory_usage_labels ["state" ] = metric
352
355
if hasattr (virtual_memory , metric ):
353
- yield Measurement (
356
+ yield Observation (
354
357
getattr (virtual_memory , metric ),
355
358
self ._system_memory_usage_labels ,
356
359
)
357
360
358
- def _get_system_memory_utilization (self ) -> Iterable [Measurement ]:
361
+ def _get_system_memory_utilization (self ) -> Iterable [Observation ]:
359
362
"""Observer callback for memory utilization"""
360
363
system_memory = psutil .virtual_memory ()
361
364
362
365
for metric in self ._config ["system.memory.utilization" ]:
363
366
self ._system_memory_utilization_labels ["state" ] = metric
364
367
if hasattr (system_memory , metric ):
365
- yield Measurement (
368
+ yield Observation (
366
369
getattr (system_memory , metric ) / system_memory .total ,
367
370
self ._system_memory_utilization_labels ,
368
371
)
369
372
370
- def _get_system_swap_usage (self ) -> Iterable [Measurement ]:
373
+ def _get_system_swap_usage (self ) -> Iterable [Observation ]:
371
374
"""Observer callback for swap usage"""
372
375
system_swap = psutil .swap_memory ()
373
376
374
377
for metric in self ._config ["system.swap.usage" ]:
375
378
self ._system_swap_usage_labels ["state" ] = metric
376
379
if hasattr (system_swap , metric ):
377
- yield Measurement (
380
+ yield Observation (
378
381
getattr (system_swap , metric ),
379
382
self ._system_swap_usage_labels ,
380
383
)
381
384
382
- def _get_system_swap_utilization (self ) -> Iterable [Measurement ]:
385
+ def _get_system_swap_utilization (self ) -> Iterable [Observation ]:
383
386
"""Observer callback for swap utilization"""
384
387
system_swap = psutil .swap_memory ()
385
388
386
389
for metric in self ._config ["system.swap.utilization" ]:
387
390
if hasattr (system_swap , metric ):
388
391
self ._system_swap_utilization_labels ["state" ] = metric
389
- yield Measurement (
392
+ yield Observation (
390
393
getattr (system_swap , metric ) / system_swap .total ,
391
394
self ._system_swap_utilization_labels ,
392
395
)
393
396
394
- def _get_system_disk_io (self ) -> Iterable [Measurement ]:
397
+ def _get_system_disk_io (self ) -> Iterable [Observation ]:
395
398
"""Observer callback for disk IO"""
396
399
for device , counters in psutil .disk_io_counters (perdisk = True ).items ():
397
400
for metric in self ._config ["system.disk.io" ]:
398
401
if hasattr (counters , f"{ metric } _bytes" ):
399
402
self ._system_disk_io_labels ["device" ] = device
400
403
self ._system_disk_io_labels ["direction" ] = metric
401
- yield Measurement (
404
+ yield Observation (
402
405
getattr (counters , f"{ metric } _bytes" ),
403
406
self ._system_disk_io_labels ,
404
407
)
405
408
406
- def _get_system_disk_operations (self ) -> Iterable [Measurement ]:
409
+ def _get_system_disk_operations (self ) -> Iterable [Observation ]:
407
410
"""Observer callback for disk operations"""
408
411
for device , counters in psutil .disk_io_counters (perdisk = True ).items ():
409
412
for metric in self ._config ["system.disk.operations" ]:
410
413
if hasattr (counters , f"{ metric } _count" ):
411
414
self ._system_disk_operations_labels ["device" ] = device
412
415
self ._system_disk_operations_labels ["direction" ] = metric
413
- yield Measurement (
416
+ yield Observation (
414
417
getattr (counters , f"{ metric } _count" ),
415
418
self ._system_disk_operations_labels ,
416
419
)
417
420
418
- def _get_system_disk_time (self ) -> Iterable [Measurement ]:
421
+ def _get_system_disk_time (self ) -> Iterable [Observation ]:
419
422
"""Observer callback for disk time"""
420
423
for device , counters in psutil .disk_io_counters (perdisk = True ).items ():
421
424
for metric in self ._config ["system.disk.time" ]:
422
425
if hasattr (counters , f"{ metric } _time" ):
423
426
self ._system_disk_time_labels ["device" ] = device
424
427
self ._system_disk_time_labels ["direction" ] = metric
425
- yield Measurement (
428
+ yield Observation (
426
429
getattr (counters , f"{ metric } _time" ) / 1000 ,
427
430
self ._system_disk_time_labels ,
428
431
)
429
432
430
- def _get_system_disk_merged (self ) -> Iterable [Measurement ]:
433
+ def _get_system_disk_merged (self ) -> Iterable [Observation ]:
431
434
"""Observer callback for disk merged operations"""
432
435
433
436
# FIXME The units in the spec is 1, it seems like it should be
@@ -438,12 +441,12 @@ def _get_system_disk_merged(self) -> Iterable[Measurement]:
438
441
if hasattr (counters , f"{ metric } _merged_count" ):
439
442
self ._system_disk_merged_labels ["device" ] = device
440
443
self ._system_disk_merged_labels ["direction" ] = metric
441
- yield Measurement (
444
+ yield Observation (
442
445
getattr (counters , f"{ metric } _merged_count" ),
443
446
self ._system_disk_merged_labels ,
444
447
)
445
448
446
- def _get_system_network_dropped_packets (self ) -> Iterable [Measurement ]:
449
+ def _get_system_network_dropped_packets (self ) -> Iterable [Observation ]:
447
450
"""Observer callback for network dropped packets"""
448
451
449
452
for device , counters in psutil .net_io_counters (pernic = True ).items ():
@@ -456,12 +459,12 @@ def _get_system_network_dropped_packets(self) -> Iterable[Measurement]:
456
459
self ._system_network_dropped_packets_labels [
457
460
"direction"
458
461
] = metric
459
- yield Measurement (
462
+ yield Observation (
460
463
getattr (counters , f"drop{ in_out } " ),
461
464
self ._system_network_dropped_packets_labels ,
462
465
)
463
466
464
- def _get_system_network_packets (self ) -> Iterable [Measurement ]:
467
+ def _get_system_network_packets (self ) -> Iterable [Observation ]:
465
468
"""Observer callback for network packets"""
466
469
467
470
for device , counters in psutil .net_io_counters (pernic = True ).items ():
@@ -470,25 +473,25 @@ def _get_system_network_packets(self) -> Iterable[Measurement]:
470
473
if hasattr (counters , f"packets_{ recv_sent } " ):
471
474
self ._system_network_packets_labels ["device" ] = device
472
475
self ._system_network_packets_labels ["direction" ] = metric
473
- yield Measurement (
476
+ yield Observation (
474
477
getattr (counters , f"packets_{ recv_sent } " ),
475
478
self ._system_network_packets_labels ,
476
479
)
477
480
478
- def _get_system_network_errors (self ) -> Iterable [Measurement ]:
481
+ def _get_system_network_errors (self ) -> Iterable [Observation ]:
479
482
"""Observer callback for network errors"""
480
483
for device , counters in psutil .net_io_counters (pernic = True ).items ():
481
484
for metric in self ._config ["system.network.errors" ]:
482
485
in_out = {"receive" : "in" , "transmit" : "out" }[metric ]
483
486
if hasattr (counters , f"err{ in_out } " ):
484
487
self ._system_network_errors_labels ["device" ] = device
485
488
self ._system_network_errors_labels ["direction" ] = metric
486
- yield Measurement (
489
+ yield Observation (
487
490
getattr (counters , f"err{ in_out } " ),
488
491
self ._system_network_errors_labels ,
489
492
)
490
493
491
- def _get_system_network_io (self ) -> Iterable [Measurement ]:
494
+ def _get_system_network_io (self ) -> Iterable [Observation ]:
492
495
"""Observer callback for network IO"""
493
496
494
497
for device , counters in psutil .net_io_counters (pernic = True ).items ():
@@ -497,12 +500,12 @@ def _get_system_network_io(self) -> Iterable[Measurement]:
497
500
if hasattr (counters , f"bytes_{ recv_sent } " ):
498
501
self ._system_network_io_labels ["device" ] = device
499
502
self ._system_network_io_labels ["direction" ] = metric
500
- yield Measurement (
503
+ yield Observation (
501
504
getattr (counters , f"bytes_{ recv_sent } " ),
502
505
self ._system_network_io_labels ,
503
506
)
504
507
505
- def _get_system_network_connections (self ) -> Iterable [Measurement ]:
508
+ def _get_system_network_connections (self ) -> Iterable [Observation ]:
506
509
"""Observer callback for network connections"""
507
510
# TODO How to find the device identifier for a particular
508
511
# connection?
@@ -535,35 +538,35 @@ def _get_system_network_connections(self) -> Iterable[Measurement]:
535
538
}
536
539
537
540
for connection_counter in connection_counters .values ():
538
- yield Measurement (
541
+ yield Observation (
539
542
connection_counter ["counter" ],
540
543
connection_counter ["labels" ],
541
544
)
542
545
543
- def _get_runtime_memory (self ) -> Iterable [Measurement ]:
546
+ def _get_runtime_memory (self ) -> Iterable [Observation ]:
544
547
"""Observer callback for runtime memory"""
545
548
proc_memory = self ._proc .memory_info ()
546
549
for metric in self ._config ["runtime.memory" ]:
547
550
if hasattr (proc_memory , metric ):
548
551
self ._runtime_memory_labels ["type" ] = metric
549
- yield Measurement (
552
+ yield Observation (
550
553
getattr (proc_memory , metric ),
551
554
self ._runtime_memory_labels ,
552
555
)
553
556
554
- def _get_runtime_cpu_time (self ) -> Iterable [Measurement ]:
557
+ def _get_runtime_cpu_time (self ) -> Iterable [Observation ]:
555
558
"""Observer callback for runtime CPU time"""
556
559
proc_cpu = self ._proc .cpu_times ()
557
560
for metric in self ._config ["runtime.cpu.time" ]:
558
561
if hasattr (proc_cpu , metric ):
559
562
self ._runtime_cpu_time_labels ["type" ] = metric
560
- yield Measurement (
563
+ yield Observation (
561
564
getattr (proc_cpu , metric ),
562
565
self ._runtime_cpu_time_labels ,
563
566
)
564
567
565
- def _get_runtime_gc_count (self ) -> Iterable [Measurement ]:
568
+ def _get_runtime_gc_count (self ) -> Iterable [Observation ]:
566
569
"""Observer callback for garbage collection"""
567
570
for index , count in enumerate (gc .get_count ()):
568
571
self ._runtime_gc_count_labels ["count" ] = str (index )
569
- yield Measurement (count , self ._runtime_gc_count_labels )
572
+ yield Observation (count , self ._runtime_gc_count_labels )
0 commit comments