рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЗ рд╕рд╛рде рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА

рдирдорд╕реНрдХрд╛рд░ рд╕рд╛рдерд┐рдпреЛрдВ!

рд╣рдордиреЗ рд╕рд┐рд░реНрдл рдмреНрд░реЗрдВрдбрди рдмрд░реНрдиреНрд╕ рдХреА рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреБрд╕реНрддрдХ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛, рдЬреЛ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреА рд╣реИ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, " рдорд╛рд╕реНрдЯреЗрд░рд┐рдВрдЧ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ " (рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг) рдкреБрд╕реНрддрдХ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рд▓реЗрдЦрдХ рдХреА рдбреЙрдХрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рддрд╛рдм рд╕рд┐рддрдВрдмрд░ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ рд╣реЛрдЧреАред

рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЕрдЧрд▓рд╛ рдкрдбрд╝рд╛рд╡ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд┐рддрд╛рдм рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдЬ рд╣рдо рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдореЗрдВ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдмреАрдЪ рдХрд░реАрдмреА рдмрд╛рддрдЪреАрдд рдкрд░ рдмреНрдпреЛрд░реНрди рд╡реЗрдиреНрдЬрд╝реЗрд▓ рдХреЗ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗрдирд╛ рдпрд╛рдж рд░рдЦреЗрдВред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡реНрдпрд╡рд╕рд╛рдп рд╣реИред рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХ рдЯрди рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╢реНрд░реЗрдгреА рд╕реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ: рдЕрдм рдореЗрдореЛрд░реА рдФрд░ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХрд┐рддрдирд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдХреИрд╕реЗ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдХреМрди рд╕рд╛ рдХрдВрдЯреЗрдирд░ рдХрд┐рддрдирд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИ? рдЗрд╕рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдРрд╕реЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрдпреЛрдЬрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреНрд▓рд╛рдЙрдб рдиреЗрдЯрд┐рд╡ рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧ рдлрд╛рдЙрдВрдбреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╕рд╛рдЙрдВрдбрдХреНрд▓рд╛рдЙрдб рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░


рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╕рд░реНрд╡рд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓ рдХрд╣рд╛рдБ рд╕реЗ рд╕реНрдерд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реИред рдлрд┐рд░, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╕рд░реНрд╡рд░ рдЗрди рдЯрд░реНрдорд┐рдирд▓реЛрдВ рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ (рд╡реЗ рдЖрдорддреМрд░ рдкрд░ /metrics рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ /metrics ) рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрджрд╛рд╣рд░рдг рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ рдПрдХ рдПрдЬреЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдПрдХ node_exporter рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдЫреЛрдЯреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓:

 scrape_configs: - job_name: "node_exporter" scrape_interval: "15s" target_groups: - targets: ['<ip>:9100'] 

рдкрд╣рд▓реЗ рд╣рдо рдиреМрдХрд░реА рдХреЗ рдирд╛рдо job_name рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ scrape_interval рдбреЗрдЯрд╛ scrape_interval рдФрд░ node_exporter рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ред рдЕрдм рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╣рд░ 15 рд╕реЗрдХрдВрдб рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП path /metrics рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд╕реЗ рдкреВрдЫреЗрдЧрд╛ред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

 # HELP go_gc_duration_seconds A summary of the GC invocation durations. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 1.4852e-05 go_gc_duration_seconds{quantile="0.25"} 2.0702e-05 go_gc_duration_seconds{quantile="0.5"} 2.2059e-05 ... 

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореАрдЯреНрд░рд┐рдХ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдлрд┐рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА) рдФрд░, рдЕрдВрдд рдореЗрдВ, рдореАрдЯреНрд░рд┐рдХ рдХрд╛ рдореВрд▓реНрдпред рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдЗрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рд╣реИред рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЗ рдкрд╛рд╕ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рд╣реИ ред

рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдпрд╣ рд╣реИ: рджрд┐рдП рдЧрдП рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХреЛ рдкреЛрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рдордп рд╢реНрд░реГрдВрдЦрд▓рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдкреБрд╢рдЧреЗрдЯрд╡реЗ рдирд╛рдордХ рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИред рдкреБрд╢рдЧреЗрдЯрд╡реЗ рдЧреЗрдЯрд╡реЗ рдмрд╛рд╣рд░реА рдиреМрдХрд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдЗрд╕ рдЧреЗрдЯрд╡реЗ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИред

рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдПрдХ рдЕрдиреНрдп рд╡реИрдХрд▓реНрдкрд┐рдХ рдШрдЯрдХ рд╣реИ alertmanager ред alertmanager рдШрдЯрдХ alertmanager рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЙрдирд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдИ-рдореЗрд▓, рд╕реНрд▓реИрдХ рдпрд╛ рдСрдкрдЧреЗрдирдЬреА рджреНрд╡рд╛рд░рд╛ рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬреЗрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╕рд░реНрд╡рд░ рдореЗрдВ рдХрдИ рдПрдХреАрдХреГрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдореЗрдЬрд╝реЕрди рдПрдкреАрдЖрдИ рдкрд░ ec2 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗ рдкреЙрдбреНрд╕, рдиреЛрдбреНрд╕ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдХрдИ рдирд┐рд░реНрдпрд╛рддрдХ рднреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, aforementioned node_exporter ред рдРрд╕реЗ рдирд┐рд░реНрдпрд╛рддрдХ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЛрдб рдкрд░ рдЬрд╣рд╛рдВ MySQL рдЬреИрд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯрд░реНрдорд┐рдирд▓ / рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдП рдЧрдП рдЕрдВрддрд░рд╛рд▓ рдкрд░, рдФрд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╕рд░реНрд╡рд░ рд╡рд╣рд╛рдВ рд╕реЗ рдЗрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рд░реНрдпрд╛рддрдХ рдХреЛ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЬреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЬреЗрд╡реАрдПрдо рдЬрд╛рдирдХрд╛рд░реАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ рдРрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред client_java рдкреГрд╖реНрда рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 @Controller public class MyController { @RequestMapping("/") @PrometheusTimeMethod(name = "my_controller_path_duration_seconds", help = "Some helpful info here") public Object handleMain() { //  - } } 

рдпрд╣ рд╡рд┐рдзрд┐ рдХреА рдЕрд╡рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдореАрдЯреНрд░рд┐рдХ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдореАрдЯреНрд░рд┐рдХ рдЕрдм рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдкреБрд╢рдЧреЗрдЯрд╡реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ


рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреВрд▓реНрд╣рд╛, рдиреЛрдб рдФрд░ рд╕реЗрд╡рд╛ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рдХреНрд╖рдорддрд╛рдПрдВ рд╣реИрдВред рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, kubelet рдФрд░ kube-apiserver рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ kube-apiserver рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреА рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╣реЗрд▓реНрдо рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЕрдкрдиреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЗрд▓рдо рдЪрд╛рд░реНрдЯ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ rbac рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЕрдиреНрдпрдерд╛ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ kube-apiserver рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдорд╛рди рд▓рд┐рдЦрд╛ рд╣реИред рдУрдПрдордПрд▓ рдлрд╝рд╛рдЗрд▓, рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрддрд╡рд╛рд░ рдЪрд╛рд░реНрдЯ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП:

  1. alertmanager.enabled: false , рдЕрд░реНрдерд╛рдд, рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЕрд▓рд░реНрдЯрдореИрдирдЧрд░ рдХреА рддреИрдирд╛рддреА рдХреЛ рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ (рдореИрдВ рдЕрд▓рд░реНрдЯрдореИрдирдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рдлреНрдЯрд╛рдирд╛ рдХреЗ рд╕рд╛рде рдЕрд▓рд░реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ)
  2. kubeStateMetrics.enabled: false рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЪреВрд▓реНрд╣реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддреЗ рд╣реИрдВред рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рд╕рд┐рд╕реНрдЯрдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ
  3. server.persistentVolume.enabled: false рдЬрдм рддрдХ рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рд░рдВрддрд░ рдорд╛рддреНрд░рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
  4. рдореИрдВрдиреЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдВ рд╕реВрдЪрдирд╛ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреАрдердм рдкрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ v1.7 рдореЗрдВ, cAdvisor рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдПрдХ рдЕрд▓рдЧ рдкреЛрд░реНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рд╣реЗрд▓реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

helm install stable/prometheus --name prometheus-monitoring -f prometheus-values.yaml

рддреЛ рд╣рдо рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╕рд░реНрд╡рд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдкрд░ - рдиреЛрдб_рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХреЗ рддрд╣рдд рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рдЖрдк рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рд╡реЗрдм GUI рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

kubectl port-forward <prometheus-server-pod> 9090

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд┐рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ (рд╕реНрдерд┐рддрд┐ / рд▓рдХреНрд╖реНрдп), рдФрд░ рдЬрдм рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдВрддрд┐рдо рдмрд╛рд░ рдХрдИ рдмрд╛рд░ рд╢реВрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:



рдпрд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдПрдкрд╕рд░, рдиреЛрдбреНрд╕, рдПрдХ рдХреИрдбрд╡рд╛рдЗрдЬрд░ рд╕реЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдиреЛрдбреНрд╕ рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЖрдк рдЧреНрд░рд╛рдл рдореЗрдВ рдЬрд╛рдХрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдХреНрд╡реЗрд░реА рд▓рд┐рдЦрдХрд░ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ:



рдпрд╣рд╛рдБ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрд░реЛрд╣ рдмрд┐рдВрджреБ "/" рдкрд░ рдирд┐рдГрд╢реБрд▓реНрдХ рд╕рдВрдЧреНрд░рд╣рдг рджреЗрдЦрддреЗ рд╣реИрдВред рдЖрд░реЗрдЦ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдкрд░, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдиреЛрдб_рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рд╣рдо рдХреЗрд╡рд▓ рдорд╛рдЙрдВрдЯ рдмрд┐рдВрджреБ "/" рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╕реНрдЯрдо рдореЗрдЯреНрд░рд┐рдХреНрд╕


рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдЬрд┐рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╡реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рд╣реИрдВ, рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЪреВрд▓реНрд╣рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдореАрдЯреНрд░рд┐рдХ рднреА рд╣реИред рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреА рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреВрд░реЗ рдЪреВрд▓реНрд╣рд╛ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЕрдЧрд░ рдЪреВрд▓реНрд╣рд╛ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ рд╣реИ рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рджреЛ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд░рдирд╛; рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ nginx-ingress-controller рдЗрд╕ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░рддрд╛ рд╣реИ:

 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-ingress-controller namespace: ingress-nginx spec: replicas: 1 selector: matchLabels: app: ingress-nginx template: metadata: labels: app: ingress-nginx annotations: prometheus.io/port: '10254' prometheus.io/scrape: 'true' ... 

рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЯреЗрдореНрдкрд▓реЗрдЯ рджреЛ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдкреЛрд░реНрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЛ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред рдЕрдм, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ Kubernetes Api-Server рдкреЙрдбреНрд╕ рдХреЛ рд╕реВрдЪрдирд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ / рдореЗрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдШреАрдп рдХрд╛рд░реНрдп


рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдПрдХ рдлрд╝реЗрдбрд░реЗрдЯреЗрдб рдореЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ: рд╣рдо рдХреЗрд╡рд▓ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ (рдпрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рд╕реЗ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ), рдлрд╝реЗрдбрд░реЗрдЯреЗрдб рдореЛрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдерд╛рдкрд┐рдд рджреВрд╕рд░реЗ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдореВрд╣реЛрдВ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛ рдЬреЛ рдЗрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИрдВ рдпрд╛ рдЗрд╕ рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд┐рд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдПрдХрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрджрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi421175/


All Articles