@@ -771,12 +771,12 @@ def set_metric(self, df: pd.DataFrame):
771
771
772
772
def __init__ (
773
773
self : T ,
774
- name : str = '' ,
775
- documentation : str = '' ,
774
+ name : str ,
775
+ documentation : str ,
776
+ df : pd .DataFrame ,
776
777
namespace : str = '' ,
777
778
subsystem : str = '' ,
778
779
unit : str = '' ,
779
- df = None ,
780
780
columns = None ,
781
781
registry : Optional [CollectorRegistry ] = REGISTRY ,
782
782
tag = 'report' ,
@@ -786,11 +786,15 @@ def __init__(
786
786
Esta classe parte do pressuporto que a metrica é trocada com mais eficiencia do que ficar alterando apenas 1 valor
787
787
o calculo pode ser feito em outro lugar e passar apenas a estrutura completo pronto em DataFrame
788
788
"""
789
+ if df is None :
790
+ raise ValueError ("df must be set" )
791
+
789
792
self ._name = _build_full_name (self ._type , name , namespace , subsystem , unit )
790
793
if columns :
791
794
self ._labelvalues = columns
792
795
else :
793
796
self ._labelvalues = df .columns
797
+
794
798
self ._labelnames = _validate_labelnames (self , self ._labelvalues )
795
799
self ._labelvalues = tuple (None or ())
796
800
self ._kwargs : Dict [str , Any ] = {}
@@ -837,20 +841,20 @@ def clear(self) -> None:
837
841
with self ._lock :
838
842
self ._metrics = {}
839
843
840
- def _samples (self ) -> Iterable [Sample ]:
841
- if self ._is_parent ():
842
- return self ._multi_samples ()
843
- else :
844
- return self ._child_samples ()
845
-
846
- def _multi_samples (self ) -> Iterable [Sample ]:
847
- if 'pandas' not in vars (metrics ._encoder ):
848
- with self ._lock :
849
- metrics = self ._metrics .copy ()
850
- for labels , metric in metrics .items ():
851
- series_labels = list (zip (self ._labelnames , labels ))
852
- for suffix , sample_labels , value , timestamp , exemplar in metric ._samples ():
853
- yield Sample (suffix , dict (series_labels + list (sample_labels .items ())), value , timestamp , exemplar )
844
+ # def _samples(self) -> Iterable[Sample]:
845
+ # if self._is_parent():
846
+ # return self._multi_samples()
847
+ # else:
848
+ # return self._child_samples()
849
+
850
+ # def _multi_samples(self) -> Iterable[Sample]:
851
+ # if 'pandas' not in vars(metrics._encoder):
852
+ # with self._lock:
853
+ # metrics = self._metrics.copy()
854
+ # for labels, metric in metrics.items():
855
+ # series_labels = list(zip(self._labelnames, labels))
856
+ # for suffix, sample_labels, value, timestamp, exemplar in metric._samples():
857
+ # yield Sample(suffix, dict(series_labels + list(sample_labels.items())), value, timestamp, exemplar)
854
858
855
859
def _child_samples (self ) -> Iterable [Sample ]: # pragma: no cover
856
860
raise NotImplementedError ('_child_samples() must be implemented by %r' % self )
0 commit comments