+
    O×ium  ã                   ó–  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
HtHtHtHtHtHtHtHtHt ^ RIHt ^RIHtHt ^RIHtHtHtHtHtHt ]'       d   ^ RI s!^ RI"H#s# MRs#Rs!]PH                  ! ]%4      t& ! R R	]4      t' ! R
 R]](]3,          4      t) ! R R]4      t*R R lt+ ! R R4      t, ! R R]4      t-R# )é    N)Úisclose)	ÚTYPE_CHECKINGÚAnyÚDictÚIterableÚListÚ
NamedTupleÚOptionalÚSequenceÚUnion)ÚCockpitProblem)ÚAsyncChannelÚChannelError)Ú
JsonObjectÚ	JsonValueÚget_intÚget_objvÚget_strÚget_strv©Úpmapic                   ó   € ] tR t^OtRtR# )ÚMetricNotFoundError© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú6/usr/lib/python3/dist-packages/cockpit/channels/pcp.pyr   r   O   s   † Ûr    r   c                   ó>   a a€ ] tR t^St oV3R lV 3R lltRtVtV ;t# )ÚPcpMetricInfoc                ó$   <€ V ^8„  d   QhRS[ RR/# )é   ÚvalueÚreturnN©r   )ÚformatÚ__classdict__s   "€r!   Ú__annotate__ÚPcpMetricInfo.__annotate__T   s   ø€ ÷ Oñ O™jð O¨Tñ Or    c                óÒ   <€ \        VR 4      V n        \        VRR4      V n        \        VRR4      V n        \        SV `  V P                  V P                  V P                  R7       R# )ÚnameÚderiveÚ Úunits)r.   r/   r1   N)r   r.   r/   r1   ÚsuperÚ__init__)Úselfr&   Ú	__class__s   &&€r!   r3   ÚPcpMetricInfo.__init__T   sQ   ø€ Ü˜E 6Ó*ˆŒ	Ü˜e X¨rÓ2ˆŒÜ˜U G¨RÓ0ˆŒ
Ü‰Ñ˜dŸi™i°·±À4Ç:Á:ÐÖNr    )r/   r.   r1   )r   r   r   r   r3   r   Ú__classdictcell__Ú__classcell__)r5   r*   s   @@r!   r#   r#   S   s   ù‡ € ÷O÷ Oó Or    r#   c                   ó,   a € ] tR t^[t o V 3R ltRtV tR# )Ú
MetricInfoc                ón   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )r%   Úpmidr/   Údescr.   Úfactorr1   Ú	instanced)ÚintÚstrr   ÚfloatÚbool)r)   r*   s   "€r!   r+   ÚMetricInfo.__annotate__[   sU   ø‡ ‚ Ù
�Iñ á�Kñ ñ �Iñ ñ �Iñ	 ñ
 �Mñ ñ �Jñ ñ �Oò r    r   N)r   r   r   r   Ú__annotate_func__r   r7   ©r*   s   @r!   r:   r:   [   s   ø‡ ‡ „ r    r:   c                ó   € V ^8„  d   QhRR/# )r%   r'   Nr   )r)   s   "r!   r+   r+   e   s   € ÷ ^ñ ^˜ñ ^r    c                  ó‚   € \         e	   \        f    ^ R Is ^ RIHs R # R #   \         d   p \        RRR7      T hR p ? ii ; i)Nr   únot-supportedzpython3-pcp not installed©Úmessage)Úc_apir   ÚcpmapiÚpcpÚImportErrorr   )Úexcs    r!   Útry_import_pcprQ   e   sA   € ä‚}œšð	^Û"ß!ñ &øô ô 	^Ü˜Ð8SÔTÐZ]Ð]ûð	^ús   ’
   >«9¹>c                   óP   a € ] tR t^ot o V 3R lR ltV 3R lR ltV 3R ltRtV tR# )ÚArchiveInfoc                ó.   <€ V ^8„  d   QhRRRS[ RS[RR/# )r%   Úcontextúpmapi.pmContextÚstartÚpathr'   N)rB   rA   )r)   r*   s   "€r!   r+   ÚArchiveInfo.__annotate__r   s*   ø€ ÷ &ñ &Ð 1ð &¹%ð &Ásð &Ètñ &r    c                ó8   € Wn         W n        W0n        . V n        R # ©N)rU   rW   rX   Úmetric_descriptions)r4   rU   rW   rX   s   &&&&r!   r3   ÚArchiveInfo.__init__r   s   € ØŒØŒ
ØŒ	Ø#%ˆÖ r    c                ó    <€ V ^8„  d   QhRS[ /# )r%   r'   ©rB   )r)   r*   s   "€r!   r+   rY   x   s   ø€ ÷ ñ ™%ñ r    c                ó   € V P                   # r[   )rW   )r4   s   &r!   Úsort_keyÚArchiveInfo.sort_keyx   s   € Ø�z‰zÐr    c                ó6   <€ V ^8„  d   Qh/ S[ S[,          ;R&   # )r%   r\   )r   r:   )r)   r*   s   "€r!   r+   rY   o   s   ø‡ ‚ Ù™jÕ)Ñ)ò r    )rU   r\   rX   rW   N)	r   r   r   r   r3   ra   rE   r   r7   rF   s   @r!   rS   rS   o   s    ø‡ € ÷&ð &÷ð ÷ ƒ r    rS   c                   óÊ  a € ] tR t^|t o RtRtRtV 3R lR lt]V 3R lR l4       t	]V 3R lR l4       t
]V 3R	 lR
 l4       tV 3R lR ltV 3R lR lt]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR  ltV 3R! lR" ltV 3R# lR$ ltV 3R% lR& ltV 3R' lR( ltV 3R) ltR*tV tR# )+ÚPcpMetricsChannelÚmetrics1Nc                ó$   <€ V ^8„  d   QhRS[ RR/# ©r%   Úoptionsr'   Nr(   )r)   r*   s   "€r!   r+   ÚPcpMetricsChannel.__annotate__�   s   ø€ ÷ mñ m¡Zð m°Dñ mr    c                óÜ  € ^<V n         ^ V n        ^ V n        \        P                  p\        P                  ) ^,
          p\        VRR4      V n        V P                  ^ 8:  g   V P                  V8”  d   \        RRV P                   2R7      h\        VR^ 4      V n        V P                  R,          V8  g   V P                  R,          V8”  d   \        RRV P                   2R7      hV P                  ^ 8  d<   \        \        P                  ! 4       R,          V P                  ,           4      V n        \        VR\        4      V n        \        VR	V4      V n        V P                  ^ 8:  g   V P                  V8”  d   \        RR
V P                   2R7      h\        VRR4      V n        \        VR. 4      V n        \%        VRR4      V n        V P&                  R8X  d   \        RRR7      hR# )é<   Úintervaléè  úprotocol-errorzinvalid "interval" value: rJ   Ú	timestampzinvalid "timestamp" value: ÚmetricsÚlimitzinvalid "limit" value: Ú	instancesr0   zomit-instancesÚsourceú0no "source" option specified for metrics channelN)Úarchive_batchÚlast_timestampÚnext_timestampÚsysÚmaxsizer   rm   r   Ústart_timestampr@   Útimer   r#   rq   rr   r   rs   Úomit_instancesr   rt   )r4   ri   Úmax_sizeÚmin_sizes   &&  r!   Úparse_optionsÚPcpMetricsChannel.parse_options�   s¤  € ØˆÔØˆÔØˆÔä—;‘;ˆÜ—K‘K�< !Õ#ˆä ¨°TÓ:ˆŒØ�=‰=˜AÔ §¡°Ô!9ÜÐ/Ð;UÐVZ×VcÑVcÐUdÐ9eÔfÐfä& w°¸QÓ?ˆÔØ×Ñ $Õ&¨Ô1°T×5IÑ5IÈDÕ5PÐS[Ô5[ÜÐ/Ð;VÐW[×WkÑWkÐVlÐ9mÔnÐnà×Ñ !Ô#Ü#&¬¯	ª	«°dÕ(:¸d×>RÑ>RÕ'RÓ#SˆDÔ ä ¨´MÓBˆŒÜ˜W g¨xÓ8ˆŒ
Ø�:‰:˜Œ?˜dŸj™j¨8Ô3ÜÐ/Ð;RÐSW×S]ÑS]ÐR^Ð9_Ô`Ð`ä! '¨;¸Ó;ˆŒÜ& wÐ0@À"ÓEˆÔÜ˜g x°Ó4ˆŒØ�;‰;˜"ÔÜÐ/Ð9kÔlÐlñ r    c                ó$   <€ V ^8„  d   QhRS[ RR/# )r%   rp   r'   zpmapi.timevalr_   )r)   r*   s   "€r!   r+   rj   ¬   s   ø€ ÷ (ñ (¡Eð (¨oñ (r    c                ó„   € \        V R ,          4      p\        V R ,          R ,          4      p\        P                  ! W4      # )rn   )r@   r   Útimeval)rp   ÚsecÚusecs   &  r!   Úfloat_to_timevalÚ"PcpMetricsChannel.float_to_timeval«   s4   € ä�)˜dÕ"Ó#ˆÜ�I Õ$¨Õ,Ó-ˆÜ�}Š}˜SÓ'Ð'r    c                ó$   <€ V ^8„  d   QhRS[ RR/# )r%   rp   r'   zpmapi.timespecr_   )r)   r*   s   "€r!   r+   rj   ²   s   ø€ ÷ ñ ¡Uð Ð/?ñ r    c                óš   € \         P                  ! 4       p\        V R ,          4      Vn        \        V R ,          R,          4      Vn        V# )rn   é@B )r   Útimespecr@   Útv_secÚtv_nsec)rp   Útss   & r!   Úfloat_to_timespecÚ#PcpMetricsChannel.float_to_timespec±   s:   € ä�^Š^ÓˆÜ˜	 DÕ(Ó)ˆŒ	Ü˜) dÕ*¨gÕ5Ó6ˆŒ
Øˆ	r    c                ó$   <€ V ^8„  d   QhRS[ RR/# )r%   rt   r'   ztuple[str, str]©rA   )r)   r*   s   "€r!   r+   rj   ¹   s   ø€ ÷ $ñ $¡Sð $Ð->ñ $r    c                ó¼  € V R 8X  d   \        RRR7      hV P                  R4      '       d   T p\        P                  pW3# V R8X  dO   \        P
                  ! 4       p\        P                  P                  R4      pV RV 2p\        P                  pW3# V R8X  d   T p\        P                  pW3# V R	8X  d   R
p\        P                  pW3# \        RRV  2R7      h)r0   ro   ru   rJ   Ú/zpcp-archiveÚPCP_LOG_DIRz
/pmlogger/ÚdirectÚpmcdzlocal:rI   z3unsupported "source" option specified for metrics: )r   Ú
startswithrL   ÚPM_CONTEXT_ARCHIVEÚplatformÚnoder   Ú	pmContextÚpmGetConfigÚPM_CONTEXT_LOCALÚPM_CONTEXT_HOST)rt   r.   Úcontext_typeÚhostnameÚarchive_dirs   &    r!   Úget_context_and_nameÚ&PcpMetricsChannel.get_context_and_name¸   sü   € à�RŒ<ÜÐ/Ð9kÔlÐlØ×Ñ˜s×#Ò#ØˆDÜ ×3Ñ3ˆLð  Ð#Ð#ð �}Ô$Ü—}’}“ˆHÜŸ/™/×5Ñ5°mÓDˆKØ!�] *¨X¨JÐ7ˆDÜ ×3Ñ3ˆLð Ð#Ð#ð �xÔØˆDÜ ×1Ñ1ˆLð Ð#Ð#ð �vÔØˆDÜ ×0Ñ0ˆLð
 Ð#Ð#ô ˜Ø)\Ð]cÐ\dÐ'eôgð gr    c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r%   r.   r'   )rA   r   rS   )r)   r*   s   "€r!   r+   rj   Ð   s    ø€ ÷ ñ ¡ð ©±+Õ)>ñ r    c                ó~  € \        V P                  V4      \        P                  R 7      p\	        V4      ^ 8X  d   \        R4      hV FV  pV P                   FC  pRp V P                  VP                  V4      pTf   Q hTP                  P                  T4       KE  	  KX  	  V#   \         d    \        R4      Rhi ; i))Úkeyú	not-foundNr0   )ÚsortedÚprepare_archivesrS   ra   Úlenr   rq   Úconvert_metric_descriptionrU   r   r\   Úappend)r4   r.   ÚarchivesÚarchiveÚmetricÚmetric_descs   &&    r!   Úget_archivesÚPcpMetricsChannel.get_archivesÐ   s¸   € Ü˜$×/Ñ/°Ó5¼;×;OÑ;OÔPˆäˆx‹=˜AÔÜ˜{Ó+Ð+ó  ˆGØŸ,œ,�Ø"�ð5Ø"&×"AÑ"AÀ'Ç/Á/ÐSYÓ"Z�Kð #Ò.Ð.Ð.Ø×+Ñ+×2Ñ2°;Ö?ó 'ñ  ð ˆøô +ô 5Ü& rÓ*°Ð4ð5ús   ÁB$Â$B<c                ó*   <€ V ^8„  d   QhRRRS[ RS[/# )r%   rU   rV   r±   r'   )r   r:   )r)   r*   s   "€r!   r+   rj   ç   s)   ø€ ÷ E/ñ E/Ð2Cð E/ÉZð E/Ñ\fñ E/r    c           
     ó  € \        VR R4      pVR8X  d   \        RRR7      h\        VRR4      p\        VRR4      p VP                  V4      p TP                  T^ ,          4      pTP                  \        P                  8g  p	T	'       dÆ   \        T P                   4      ^ 8”  dI   TP#                  TR
4       T P                    F&  p
 TP%                  YŠ4      pTP'                  Y‹4       K(  	  \        T P*                  4      ^ 8”  dJ   TP'                  TR
4       T P*                   F'  p TP%                  YŒ4      pTP#                  Y‹.4       K)  	  RpTP,                  pT'       dA    TP/                  T4      w  rýT P1                  YT4       YO8w  g   \3        TR4      '       g   Tp\5        T^ ,          TTTTTT	R7      #   \        P                   dg   pTP                  4       \        P                  8X  d(   \        P                  RT4       \        RR	T 2R7      R
h\        R\        T4      R7      R
hR
p?ii ; i  \        P                   dQ   pTP                  4       \        P                  8X  d   \        RR	T 2R7      R
h\        R\        T4      R7      R
hR
p?ii ; i  \        P                   d#   p\        P)                  RY§4        R
p?EK  R
p?ii ; i  \        P                   d#   p\        P)                  RYÇ4        R
p?EKì  R
p?ii ; i  \        P                   dQ   pTP                  4       \        P                  8X  d   \        RR	T 2R7      R
h\        R\        T4      R7      R
hR
p?ii ; i)r.   r0   ro   z;invalid "metrics" option was specified (no name for metric)rJ   r1   r/   zno such metric: %sÚerrorzno such metric: Núinternal-errorr©   z)Unable to add profile: instance=%s err=%sz,Unable to remove profile: instance=%s err=%sç      ð?)r<   r.   r/   r=   r>   r1   r?   )r   r   ÚpmLookupNamer   ÚpmErrÚerrnorL   ÚPM_ERR_NAMEÚloggerr·   r   rA   ÚpmLookupDescÚindomÚPM_INDOM_NULLr¬   rs   ÚpmDelProfileÚpmLookupInDomÚpmAddProfileÚdebugr}   r1   ÚpmParseUnitsStrÚtry_convert_unitr   r:   )r4   rU   r±   r.   r1   r/   Úpm_idsrP   Úpm_descr?   ÚinstanceÚinstidÚomit_instancer>   Úpm_unitsÚparsed_unitss   &&&             r!   r­   Ú,PcpMetricsChannel.convert_metric_descriptionç   s$  € Ü�v˜v rÓ*ˆØ�2Œ:ÜÐ/Ø'dôfð fä˜ ¨Ó,ˆÜ˜ ¨2Ó.ˆð	QØ×)Ñ)¨$Ó/ˆFð	QØ×*Ñ*¨6°!­9Ó5ˆGð —M‘M¤U×%8Ñ%8Ñ8ˆ	çÜ�4—>‘>Ó" QÔ&Ø×$Ñ$ W¨dÔ3Ø $§¤�HðaØ!(×!6Ñ!6°wÓ!I˜Ø×,Ñ,¨WÖ=ñ !/ô �4×&Ñ&Ó'¨!Ô+Ø×$Ñ$ W¨dÔ3Ø%)×%8Ô%8�MðiØ!(×!6Ñ!6°wÓ!N˜Ø×,Ñ,¨W°hÖ?ñ &9ð ˆØ—=‘=ˆßðUØ)0×)@Ñ)@ÀÓ)GÑ&�ð ×!Ñ! '°HÔ=àÔ$¬G°F¸C×,@Ò,@Ø'�ä˜v a�yØ#Ø!'Ø&Ø!'Ø (Ø$-ô/ð 	/øôk �{‰{ô 	QØ�y‰y‹{œe×/Ñ/Ô/Ü—‘Ð1°4Ô8Ü)¨'Ð=MÈdÈVÐ;TÔUÐ[_Ð_ä"Ð#3¼SÀ»XÔFÈDÐPûð	Qûô �{‰{ô 	QØ�y‰y‹{œe×/Ñ/Ô/Ü" ;Ð:JÈ4È&Ð8QÔRÐX\Ð\ä"Ð#3¼SÀ»XÔFÈDÐPûð		Qûô  !Ÿ;™;ô aÜŸ™Ð%PÐRZ×`Ó`ûðaûô !Ÿ;™;ô iÜŸ™Ð%SÐUb×hÓhûðiûô —;‘;ô UØ—9‘9“;¤%×"3Ñ"3Ô3Ü& {Ð>NÈtÈfÐ<UÔVÐ\`Ð`ä&Ð'7ÄÀSÃÔJÐPTÐTûð	Uúsz   ½G  ÁH> Ã"J&Ä*#K Å(L Ç H;ÇA!H6È6H;È>J#ÉAJÊJ#Ê&KÊ;KËKË LË5LÌLÌM?Ì/AM:Í:M?c                ó*   <€ V ^8„  d   QhRRRRRRRR/# )	r%   rU   rV   rÉ   zpmapi.pmDescrÍ   zpmapi.pmUnitsr'   Nr   )r)   r*   s   "€r!   r+   rj   /  s2   ø€ ÷ Mñ MÐ"3ð M¸nð MÐXgð MÐlpñ Mr    c                óî   € \         P                  ! 4       pRVn         V P                  \        P
                  W1.^ V4       R#   \         P                   d   p\        R\        T4      R7      RhRp?ii ; i)zGTry to convert a dummy value to validate that the metric is convertibleg        r¸   rJ   N)	r   ÚpmAtomValueÚdÚpmConvScalerL   ÚPM_TYPE_DOUBLEr»   r   rA   )rU   rÉ   rÍ   ÚdummyrP   s   &&&  r!   rÇ   Ú"PcpMetricsChannel.try_convert_unit.  se   € ô ×!Ò!Ó#ˆØˆŒð	MØ×Ñ¤× 4Ñ 4°e¸YÈÈ8ÖTøÜ�{‰{ô 	MÜÐ/¼¸S»ÔBÈÐLûð	Mús   ž#A ÁA4ÁA/Á/A4c                ó6   <€ V ^8„  d   QhRS[ RS[S[,          /# )r%   r£   r'   )rA   r   rS   )r)   r*   s   "€r!   r+   rj   9  s$   ø€ ÷ pñ p¡cð p©h±{Õ.Cñ pr    c              #  ó  "  € \         P                   ! \         P                  ! V 4      R ,           4      pV Fy  p\        P                  RV4        \        P
                  ! \        P                  V4      pVP                  4       p\        VP                  4      R,          p\        W5V4      x € K{  	  R#   \        P                   d@   pTP                  4       \        P                  8w  d   \        RRT 2R7      Rh Rp?KÎ  Rp?ii ; i5i)z/*.indexzopening archive: %rrn   r©   zcould not read archive rJ   N)ÚglobÚescaper¾   rÅ   r   r�   rL   rš   ÚpmGetArchiveLabelrB   rW   rS   r»   r¼   ÚPM_ERR_LOGFILEr   )r£   ÚindexesÚarchive_pathrU   Ú	log_labelÚarchive_startrP   s   &      r!   r«   Ú"PcpMetricsChannel.prepare_archives8  sÎ   é € ä—)’)œDŸKšK¨Ó4°zÕAÓBˆÛ#ˆLÜ�L‰LÐ.°Ô=ðpÜŸ/š/¬%×*BÑ*BÀLÓQ�Ø#×5Ñ5Ó7�	Ü % i§o¡oÓ 6¸Õ =�Ü! '¸,ÓGÔGó $øô —;‘;ô pØ—9‘9“;¤%×"6Ñ"6Ô6Ü& {Ð>UÐVbÐUcÐ<dÔeÐkoÐoõ 7ûðpüs1   ‚ADÁAB5Â/DÂ5D	Ã
4DÃ>DÄD	Ä	Dc                ó&   <€ V ^8„  d   QhRS[ RS[/# )r%   Úsem_idr'   )r@   rA   )r)   r*   s   "€r!   r+   rj   G  s   ø€ ÷ ñ ™Sð ¡Sñ r    c                ó�   € V \         P                  8X  d   R # V \         P                  8X  d   R# V \         P                  8X  d   R# R# )ÚcounterÚinstantÚdiscreter0   )rL   ÚPM_SEM_COUNTERÚPM_SEM_INSTANTÚPM_SEM_DISCRETE)rä   s   &r!   Úsemantic_valÚPcpMetricsChannel.semantic_valF  s8   € à”U×)Ñ)Ô)ÙØ”u×+Ñ+Ô+ÙØ”u×,Ñ,Ô,Ùár    c                ó&   <€ V ^8„  d   QhRRRRRR/# )r%   Úresultsúpmapi.pmResultrU   rV   r'   Nr   )r)   r*   s   "€r!   r+   rj   Q  s%   ø€ ÷ 2 ñ 2 Ð!1ð 2 Ð<Mð 2 ÐRVñ 2 r    c                óô  € . pV P                    EFê  pR VP                  /pVP                  '       d   VP                  VR&   \        VP                  R4      '       d   \        VP                  4      VR&   M4VP                  VP                  4       RRVP                  ,           2VR&   V P                  VP                  P                  4      pVR8w  d)   V P                  VP                  P                  4      VR&   VP                  '       dØ   . p\        VP                  P                  4       F®  pVP                  P                  V4      p	VP                   V	8w  d   K1  \        VP                  P#                  V4      4       FU  p
VP                  P%                  WŠ4      pVP'                  VP                  VP(                  4      pVP+                  V4       KW  	  K°  	  WuR&   VP+                  V4       EKí  	  \-        \.        P.                  ! 4       4      R,          p\1        VP                  P2                  R	4      '       d(   VP                  P2                  P4                  R
,          M&VP                  P2                  P6                  R,          p\-        VP                  P2                  P8                  R,          V,           4      pV P;                  V P<                  V P>                  VVVR7       R# )r.   r/   r¹   r1   Ú*r0   Ú	semanticsrs   rn   rŽ   r‹   )rt   rm   rp   rq   ÚnowN) r\   r.   r/   r   r>   rA   r1   Ú
pmUnitsStrrì   r=   Úsemr?   ÚrangeÚcontentsÚnumpmidÚget_pmidr<   Ú
get_numvalÚ	get_vlistÚpmNameInDomÚinstr®   r@   r|   Úhasattrrp   rŽ   Útv_usecr�   Ú	send_jsonrt   rm   )r4   rï   rU   rq   r²   r=   ró   ÚinstsÚir<   Újr&   Úinstance_descrô   Úmsrp   s   &&&             r!   Ú	send_metaÚPcpMetricsChannel.send_metaQ  sh  € Øˆà×3Õ3ˆKØ6<¸k×>NÑ>NÐ5OˆDà×!×!Ð!Ø!,×!3Ñ!3��X‘ä�{×)Ñ)¨3×/Ò/Ü # K×$5Ñ$5Ó 6��W’à#*×#5Ñ#5°k×6GÑ6GÓ#HÐ"IÈÈ3ÐQ\×QcÑQcÕKcÐJdÐ e��W‘à×)Ñ)¨+×*:Ñ*:×*>Ñ*>Ó?ˆIØ˜BŒØ$(×$5Ñ$5°k×6FÑ6F×6JÑ6JÓ$K��[Ñ!ð ×$×$Ð$Ø#%�Ü˜w×/Ñ/×7Ñ7Ö8�AØ"×+Ñ+×4Ñ4°QÓ7�DØ"×'Ñ'¨4Ô/Ù ä" 7×#3Ñ#3×#>Ñ#>¸qÓ#AÖB˜Ø '× 0Ñ 0× :Ñ :¸1Ó @˜Ø(/×(;Ñ(;¸K×<LÑ<LÈeÏjÉjÓ(Y˜ØŸ™ ]Ö3ó Cñ 9ð %*�[Ñ!à�N‰N˜4× ñC 4ôF ”$—)’)“+Ó Õ%ˆô ˜×)Ñ)×3Ñ3°Y×?Ò?ð ×Ñ×(Ñ(×0Ñ0°7Ö:à×#Ñ#×-Ñ-×5Ñ5¸Õ<ð 	ô ˜×(Ñ(×2Ñ2×9Ñ9¸DÕ@À2ÕEÓFˆ	à�‰˜dŸk™kØ $§¡Ø!*Ø&Øð	 	ö 	 r    c                ó$   <€ V ^8„  d   QhRRRS[ /# )r%   rï   rð   r'   )rC   )r)   r*   s   "€r!   r+   rj   …  s   ø€ ÷ ñ Ð)9ð ¹dñ r    c                óÜ  € V P                   pVf   R# \        VP                  P                  4       F¶  pV P                  V,          P
                  '       g   K(  VP                  P                  V4      pVP                  P                  V4      pWE8w  d    R# \        V4       F@  pVP                  P                  W64      VP                  P                  W64      8w  g   K>    R# 	  K¸  	  R# )z£
If a multi-instance metric changes its instances we need to send a new
meta message when these change. For example when an drive or ethernet
card is removed out.
TF)Úlast_resultsr÷   rø   rù   r\   r?   rû   Úget_inst)r4   rï   r  r  Únumval1Únumval2r  s   &&     r!   Úneeds_meta_updateÚ#PcpMetricsChannel.needs_meta_update…  sÅ   € ð ×(Ñ(ˆØÒÙô �w×'Ñ'×/Ñ/Ö0ˆAØ×+Ñ+¨AÕ.×8×8Ð8Ùà×&Ñ&×1Ñ1°!Ó4ˆGØ"×+Ñ+×6Ñ6°qÓ9ˆGàÔ!Úä˜7–^�Ø×#Ñ#×,Ñ,¨QÓ2°l×6KÑ6K×6TÑ6TÐUVÓ6ZÖZÛó $ñ 1ñ r    c          
      ó6   <€ V ^8„  d   QhRRRS[ RS[ RS[ RS[ /# )r%   rU   rV   rv   rr   Útotal_fetchedr'   )r@   )r)   r*   s   "€r!   r+   rj   ¡  s4   ø€ ÷ .ñ .Ð$5ð .Ácð .ÑRUð .Ñfið .Ñnqñ .r    c              ƒ  óz  "  € \         P                  \        V P                  4      ,          ! 4       p\	        V P                  4       F  w  rgVP
                  WV&   K  	   . p \        V4       Fò  p	WC8X  dY   VP                  \        P                  8w  d   Vu # V P                  V4       \        P                  RV P                  4       Vu # VP                  V4      p
V P                  V
4      '       d;   V'       d"   V P                  V4       VP!                  4        V P#                  W¡4       VP%                  V P'                  W4      4       W n        V^,          pKô  	  V P                  V4       VP!                  4        \*        P,                  ! ^ 4      G Rj  x€L
  EKG   L  \.        P0                   d}   p\        P                  RY¸4       TP3                  4       \        P4                  8w  d   \7        R\9        T4      R7      Rh\        T4      ^ 8”  d   T P                  T4        Rp?T# Rp?ii ; i5i)TzReached limit "%s", stoppingNzFetching error: %r, fetched %rr¸   rJ   )ÚctypesÚc_uintr¬   r\   Ú	enumerater<   r÷   ÚtyperL   rš   Úsend_updatesr¾   rÅ   rr   ÚpmFetchr  Úclearr  r®   Úparse_fetched_resultsr  ÚasyncioÚsleepr   r»   r¼   Ú
PM_ERR_EOLr   rA   )r4   rU   rv   rr   r  Úpmidsr  r±   ÚfetchedÚ_rï   rP   s   &&&&&       r!   ÚsampleÚPcpMetricsChannel.sample¡  s­  é € ä—‘¤ T×%=Ñ%=Ó!>Ö>ÓAˆÜ" 4×#;Ñ#;Ö<‰IˆAØ—{‘{ˆE‹Hñ =ð Ø!#ˆGð$Ü˜}Ö-�AØ$Ô-à"Ÿ<™<¬5×+CÑ+CÔCØ#0Ò0Ø×)Ñ)¨'Ô2ÜŸ™Ð%CÀTÇZÁZÔPØ,Ò,à%Ÿo™o¨eÓ4�Gð ×-Ñ-¨g×6Ò6ç"Ø ×-Ñ-¨gÔ6Ø#ŸM™MœOØŸ™ wÔ8à—N‘N 4×#=Ñ#=¸gÓ#OÔPØ(/Ô%Ø! QÕ&’Mñ- .ð0 ×!Ñ! 'Ô*Ø—‘”Ü—m’m AÓ&×&Õ&øÜ—;‘;ô Ü—‘Ð=¸sÔLØ—9‘9“;¤%×"2Ñ"2Ô2Ü&Ð'7ÄÀSÃÔJÐPTÐTä�w“< !Ô#Ø×%Ñ% gÔ.ãàÐûðüsh   ‚AH;Á"6F' ÂH;Â4F' ÃH;Ã'F' Ã6F' Ã>BF' ÆF%ÆF' Æ"H;Æ%F' Æ'H8Æ<A1H3È-H;È3H8È8H;c                ó*   <€ V ^8„  d   QhRRRS[ RS[ /# )r%   rU   rV   rï   r'   )r   )r)   r*   s   "€r!   r+   rj   Ñ  s$   ø€ ÷ !ñ !Ð->ð !Éð !ÑQTñ !r    c                ó   € \        V P                  4      p/ p\        VP                  P                  4      VR &   \        VP                  P                  4       EF0  pRpVP                  P                  V4      pV P                  V,          pVP                  P                  p	V^ 8  d   RWCV,          P                  &   Kh  V	\        P                  8X  g+   V	\        P                  8X  g   V	\        P                  8X  d   RWCV,          P                  &   K¾  VP                   '       g   V P#                  WW…^ 4      pM8. p
\        V4       F%  pV
P%                  V P#                  WW…V4      4       K'  	  T
pWdW5,          P                  &   EK3  	  V# )rp   N)Úlistrq   rB   rø   rp   r÷   rù   rû   r\   r=   r  r.   rL   ÚPM_TYPE_AGGREGATEÚPM_TYPE_EVENTÚPM_TYPE_STRINGr?   Úbuild_sampler®   )r4   rU   rï   rq   Úsamplesr  ÚvaluesÚnumvalr²   Úcontent_typeÚvalsr  s   &&&         r!   r  Ú'PcpMetricsChannel.parse_fetched_resultsÑ  sK  € Ü�t—|‘|Ó$ˆØFHˆä$ W×%5Ñ%5×%?Ñ%?Ó@ˆ�ÑÜ�w×'Ñ'×/Ñ/×0ˆAØHLˆFØ!×*Ñ*×5Ñ5°aÓ8ˆFØ×2Ñ2°1Õ5ˆKØ&×+Ñ+×0Ñ0ˆLð ˜ŒzØ+/� �
Ÿ™Ñ(Ùð œu×6Ñ6Ô6Ø¤× 3Ñ 3Ô3Ø¤× 4Ñ 4Ô4Ø+/� �
Ÿ™Ñ(Ùà×(×(Ð(Ø×*Ñ*¨7¸[ÈQÓO‘à.0�Ü˜vž�AØ—K‘K × 1Ñ 1°'ÀKÐTUÓ VÖWñ 'à�à'-�G•J—O‘OÔ$ñ5 1ð8 ˆr    c                ó:   <€ V ^8„  d   QhRRRS[ RS[RS[RS[RR/# )	r%   rU   rV   rï   r²   r±   rÊ   r'   zfloat | None)r   r:   r@   )r)   r*   s   "€r!   r+   rj   ô  s<   ø€ ÷ >ñ >Ð$5ð >Áð >ÑR\ð >Ù ð>Ù,/ð>Ø4Bñ>r    c                óè  € VP                   P                  V4      p\        P                  R WdV4       VP                   P	                  V4      pVP
                  V8:  d   R# VP                   P                  V4      pVP                   P                  WE4      p	VP                  P                  p
RpRpV
\        P                  8X  dF    VP                  VV	\        P                  \        P                  4      pVP                  R,          pM�V
\        P                   8X  dM    VP                  VV	\        P                   \        P                   4      pVP"                  ^,          ^,	          pM/ VP                  VV	V
\        P$                  4      pVP&                  pVP                  P(                  VP(                  8w  dt    \*        P,                  ! 4       pW¾n        VP/                  \        P$                  VVP                  .^ VP(                  4      pVP&                  VP0                  ,          pV# V#   \         d!   p\        P                  RT4        Rp?LÀRp?ii ; i  \         d!   p\        P                  RT4        Rp?LîRp?ii ; i  \         d"   p\        P                  RT4        Rp?ELRp?ii ; i  \*        P2                   d   p\5        R\7        T4      R7      RhRp?ii ; i)z,build_sample pmid=%d, metric=%d, instance=%dNz&Unable to extract PCP TYPE_64 value %sz'Unable to extract PCP TYPE_U64 value %szUnable to extract PCP value %sr¸   rJ   l   ÿÿÿ )rø   rú   r¾   rÅ   Úget_vsetr-  Ú
get_valfmtrü   r=   r  rL   Ú
PM_TYPE_64ÚpmExtractValueÚllÚ	ExceptionÚ	exceptionÚPM_TYPE_U64ÚullrÕ   rÓ   r1   r   rÒ   rÔ   r>   r»   r   rA   )r4   rU   rï   r²   r±   rÊ   r<   ÚvaluesetÚvalfmtr&   r.  Úsample_valueÚatomrP   rÖ   Úconverted_atoms   &&&&&&          r!   r*  ÚPcpMetricsChannel.build_sampleô  s›  € à×Ñ×(Ñ(¨Ó0ˆÜ�‰ÐCÀTÐS[Ô\ð ×#Ñ#×,Ñ,¨VÓ4ˆØ�?‰?˜hÔ&Ùà×!Ñ!×,Ñ,¨VÓ4ˆØ× Ñ ×*Ñ*¨6Ó<ˆØ"×'Ñ'×,Ñ,ˆð
 ˆØˆØœ5×+Ñ+Ô+ðPØ×-Ñ-¨fØ.3Ü.3×.>Ñ.>Ü.3×.>Ñ.>ó@�ð  $Ÿw™w¨-Õ8‘ð œU×.Ñ.Ô.ðQØ×-Ñ-¨fØ.3Ü.3×.?Ñ.?Ü.3×.?Ñ.?óA�ð !%§¡¨B¥°2Õ5‘ðHØ×-Ñ-¨fØ.3Ø.:Ü.3×.BÑ.BóD�ð  $Ÿv™v�ð
 ×Ñ×!Ñ! [×%6Ñ%6Ô6ð
QÜ×)Ò)Ó+�Ø&”Ø!(×!4Ñ!4´U×5IÑ5IØ5:Ø6A×6FÑ6FÐ5GØ56Ø5@×5FÑ5Fó	"H�ð
  .×/Ñ/°+×2DÑ2DÕD�ð Ðˆ|ÐøôG ô PÜ× Ñ Ð!IÈ3×OÑOûðPûô ô QÜ× Ñ Ð!JÈC×PÑPûðQûô ô HÜ× Ñ Ð!AÀ3×GÒGûðHûô —;‘;ô QÜ"Ð#3¼SÀ»XÔFÈDÐPûðQúsc   ÃAH5 Ä!A
I# Å-.J ÇA0K  È5I É IÉI É#JÉ.J	Ê	JÊJ=ÊJ8Ê8J=Ë K1ËK,Ë,K1c                ó<   <€ V ^8„  d   QhRS[ RS[S[ ,          RS[/# )r%   r&   Ú	old_valuer'   )rB   r
   r   )r)   r*   s   "€r!   r+   rj   5  s'   ø€ ÷ ñ ©5ð ¹XÁe½_ð ÑQTñ r    c                ób   € Ve+   W,
          V P                   V P                  ,
          ,          # R# )NF)rx   rw   )r4   r&   rC  s   &&&r!   Úcalculate_sample_rateÚ'PcpMetricsChannel.calculate_sample_rate5  s*   € ØÒ ØÕ%¨$×*=Ñ*=À×@SÑ@SÕ*SÕTÐTár    c                ó4   <€ V ^8„  d   QhRS[ S[,          RR/# )r%   r+  r'   N)r   r   )r)   r*   s   "€r!   r+   rj   ;  s   ø€ ÷ *2ñ *2¡H©S¥Mð *2°dñ *2r    c           	     óò  € . pV P                   ;'       g    / pV EFŒ  p\        VR ,          \        4      '       g   Q hVR ,          V n        . pV P                   EF$  pWFP
                  ,          pVP                  VP
                  R4      p\        V\        4      '       d}   VP                  R8X  dY   . p	\        V4       F4  w  r«RpVe
    WŠ,          pV	P                  V P                  W¼4      4       K6  	  VP                  V	4       K±  VP                  V4       KÄ  VP                  R8X  d'   Ve#   VP                  V P                  Wx4      4       Kû  Vf   VP                  R4       EK  VP                  V4       EK'  	  VP                  V4       V P                  V n        TpEK�  	  W0n         V P                  \        P                   ! V4      P#                  4       4       R#   \         d     EL!i ; i)rp   NÚrateF)Úlast_samplesÚ
isinstancerB   rx   rq   r.   Úgetr&  r/   r  Ú
IndexErrorr®   rE  rw   Ú	send_dataÚjsonÚdumpsÚencode)r4   r+  ÚdatarJ  r"  Úsampled_valuesÚ
metricinfor&   rC  ÚtmpÚindexÚvalÚold_vals   &&           r!   r  ÚPcpMetricsChannel.send_updates;  s¨  € Ø02ˆØ×(Ñ(×.Ð.¨BˆäˆFÜ˜f [Õ1´5×9Ò9Ð9Ð9Ø"(¨Õ"5ˆDÔØ8:ˆNà"Ÿl�l�
ØŸ™Õ/�Ø(×,Ñ,¨Z¯_©_¸dÓC�	ä˜e¤T×*Ò*Ø!×(Ñ(¨FÔ2Ø ˜Ü*3°EÖ*:™J˜EØ&*˜GØ(Ò4ð!)Ø.7Õ.> Gð  ŸJ™J t×'AÑ'AÀ#Ó'OÖPñ +;ð '×-Ñ-¨cÖ2à&×-Ñ-¨eÖ4à!×(Ñ(¨FÔ2°uÒ7HØ&×-Ñ-¨d×.HÑ.HÈÓ.ZÖ[à š=Ø*×1Ñ1°%×8à*×1Ñ1°%×8ñ3 +ð6 �K‰K˜Ô'Ø"&×"5Ñ"5ˆDÔØ!‹LñE ðH )Ôà�‰”t—z’z $Ó'×.Ñ.Ó0Ö1øô+ (2ô !)Ú$(ð!)ús   ÃG'Ç'G6	Ç5G6	c                ó"   <€ V ^8„  d   QhRRRR/# )r%   r¯   zSequence[ArchiveInfo]r'   Nr   )r)   r*   s   "€r!   r+   rj   g  s    ø€ ÷ !nñ !nÐ.Eð !nÈ$ñ !nr    c              ƒ  óÎ  "  € ^ p\        V4       EF˜  w  r4VP                  V n        RV n        RV n        V P                  pV\        V4      ^,
          8w  d!   W^,           ,          P                  V8  d   Kh  WTP                  8  d   \        VP                  4      pVP                  p \        \        R4      '       de   VP                  \        P                  \        P                  ! \        P                  4      ,          V P                  V4      V P                   4       MJVP                  \        P                  V P#                  V4      V P#                  V P                   4      4        V P-                  VP                  V P.                  V P0                  V4      G Rj  x€L
 pEK›  	  R#   \$        P&                   d   p\)        R\+        T4      R7      RhRp?ii ; i L?5i)r   NÚ
PM_XTB_SETr¸   rJ   )r  r\   r  rJ  r{   r¬   rW   r@   rU   rÿ   rL   Ú	pmSetModeÚPM_MODE_INTERPr\  ÚPM_TIME_MSECr‡   rm   r�   r   r»   r   rA   r"  rv   rr   )r4   r¯   r  r  r°   rp   rU   rP   s   &&      r!   Úsample_archivesÚ!PcpMetricsChannel.sample_archivesg  sz  é € ØˆÜ# H×-‰JˆAà'.×'BÑ'BˆDÔ$ð !%ˆDÔØ $ˆDÔØ×,Ñ,ˆIð ”C˜“M AÕ%Ô%¨(°qµ5­/×*?Ñ*?À)Ô*KÙàŸ=™=Ô(Ü §¡Ó.�	à—o‘oˆGðQÜœ5 ,×/Ò/à×%Ñ%¤e×&:Ñ&:¼U×=MÒ=MÌe×N`ÑN`Ó=aÕ&aØ&*×&;Ñ&;¸IÓ&FÈÏÉõWð ×%Ñ%¤e×&:Ñ&:Ø&*×&<Ñ&<¸YÓ&GØ&*×&<Ñ&<¸T¿]¹]Ó&KõMð #'§+¡+¨g¯o©o¸t×?QÑ?QÐSW×S]ÑS]Ð_lÓ"m×m‹Mó? .øô8 —;‘;ô QÜ"Ð#3¼SÀ»XÔFÈDÐPûðQúñ nùsD   ‚B'G%Â*A9F/Ä#G%Ä$A	F/Å-6G%Æ#G#Æ$G%Æ/G ÇGÇG Ç G%c                ó*   <€ V ^8„  d   QhRS[ RS[ RR/# )r%   r.   r¡   r'   rV   r“   )r)   r*   s   "€r!   r+   rj   Š  s#   ø€ ÷ ñ ©3ð ¹cð ÐFWñ r    c                ób  €  \         P                  ! W!4      pT P
                   F8  pRp T P                  Y54      pTf   Q hT P                  P                  T4       K:  	  T#   \         P                   d   p\        R \	        T4      R7      RhRp?ii ; i  \         d    \        R4      Rhi ; i)r¸   rJ   Nr0   )
r   r�   r»   r   rA   rq   r­   r   r\   r®   )r4   r.   r¡   Údirect_contextrP   r±   r²   s   &&&    r!   Úprepare_direct_contextÚ(PcpMetricsChannel.prepare_direct_contextŠ  s³   € ð	MÜ"Ÿ_š_¨\Ó@ˆNð —l”lˆFØˆKð1Ø"×=Ñ=¸nÓU�ð Ò*Ð*Ð*Ø×$Ñ$×+Ñ+¨KÖ8ñ #ð Ðøô �{‰{ô 	MÜÐ/¼¸S»ÔBÈÐLûð	Mûô 'ô 1Ü" 2Ó&¨DÐ0ð1ús"   ‚A" ªBÁ"BÁ7BÂBÂB.c                ó$   <€ V ^8„  d   QhRS[ RR/# rh   r(   )r)   r*   s   "€r!   r+   rj   ›  s   ø€ ÷ :ñ :¡ð :°ñ :r    c              ƒ  ó~  "  € . V n         \        P                  R WP                  4       V P	                  V4       \        4        \        RJ d   \        R4      hV P                  V P                  4      w  r#V\        P                  8X  d=   V P                  V4      pV P                  4        V P                  V4      G Rj  x€L
  R# V P                  W#4      pV P                  4         V P!                  V^^^ 4      G Rj  x€L
  \"        P$                  ! V P&                  R,          4      G Rj  x€L
  KN   Lu L7 L
5i)z)metrics pcp-archive open: %r, channel: %rTrI   Nrn   )r\   r¾   rÅ   Úchannelr€   rQ   r   r   r¤   rt   rL   rš   r³   Úreadyr`  re  r"  r  r  rm   )r4   ri   r.   r¡   r¯   rd  s   &&    r!   ÚrunÚPcpMetricsChannel.run›  sô   é € Ø#%ˆÔ Ü�‰Ð@À'Ï<É<ÔXà×Ñ˜7Ô#ÜÔä�D‹=Ü˜Ó/Ð/à!×6Ñ6°t·{±{ÓCÑˆàœ5×3Ñ3Ô3Ø×(Ñ(¨Ó.ˆHØ�J‰JŒLØ×&Ñ& xÓ0×0Ò0à!×8Ñ8¸ÓLˆNØ�J‰JŒLàØ—k‘k .°!°Q¸Ó:×:Ð:Ü—m’m D§M¡M°DÕ$8Ó9×9Ò9ñ 1ñ ;Ù9ùs6   ‚B?D=ÃD7Ã?D=ÄD9Ä.D=Ä0D;Ä1D=Ä9D=Ä;D=c                ó¶   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   R;R&   S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   S[;R&   R;R&   S[S[,          ;R&   # )r%   Úpcp_dirrv   rV   rU   rt   rm   r{   rw   rx   rr   rJ  zpmapi.pmResult | Noner  r\   )rA   r@   rB   r   r   r:   )r)   r*   s   "€r!   r+   rj   |   s¢   ø‡ ‚ ñ �Lñ ñ Ññ	 ð Ññ ñ �Kñ ñ �Mñ ñ Ññ ñ Ññ ñ Ññ ñ �Jñ ñ Ññ ð *Ñ0ñ ñ ™jÕ)Ñ)ò r    )rv   rs   rm   r  rJ  rw   rr   r\   rq   rx   r}   rt   r{   )r   r   r   r   ÚpayloadrJ  r  r€   Ústaticmethodr‡   r�   r¤   r³   r­   rÇ   r«   rì   r  r  r"  r  r*  rE  r  r`  re  rk  rE   r   r7   rF   s   @r!   re   re   |   s)  ø‡ € Ø€Gð €LØ,0€L÷mð mð< ÷(ó ð(ð
 ÷ó ðð ÷$ó ð$÷.ð ÷.E/ð E/ðN ÷Mó ðMð ÷pó ðpð ÷ó ð÷2 ð 2 ÷hð ÷8.ð .÷`!ð !÷F>ð >÷Bð ÷*2ð *2÷X!nð !n÷Fð ÷":ð :÷ ƒ r    re   ).r  r  rÚ   rO  Úloggingr›   ry   r|   Úmathr   Útypingr   r   r   r   r   r	   r
   r   r   Úcockpit.protocolr   ri  r   r   Újsonutilr   r   r   r   r   r   rM   rL   rN   r   Ú	getLoggerr   r¾   r   rA   r#   r:   rQ   rS   re   r   r    r!   Ú<module>rw     s¨   ðój Û Û Û Û Û Û 
Û Ý ß b× bÕ bå +ç 0ß R× RçÛÞà€EØ€Eà	×	Ò	˜8Ó	$€ô	˜.ô 	ôO�D˜˜i˜Õ(ô Oô�ô õ^÷
ñ 
ôu:˜ö u:r    