Grafana: рд╡реЗрдм рдЧреБрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЬреЛрдбрд╝рдирд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЕрдкреНрд░реИрд▓ 2015  ┬╖  40рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: grafana/grafana

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

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдореБрдЭреЗ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП dashboards.json рд╕рдорд╛рди рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╛рдВрдЫрд┐рдд рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рд╕рднреА 40 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ:

рдХрд░реНрд▓ ' http://localhost : 3000/api/datasources' -X PUT --data-binary '{"name":"test",,"type":"influxdb_08",,"url":" http://localhost :8086", "рдкрд╣реБрдВрдЪ": "рдкреНрд░реЙрдХреНрд╕реА", "isDefault": рд╕рдЪ, "рдбреЗрдЯрд╛рдмреЗрд╕": "asd", "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛": "asd", "рдкрд╛рд╕рд╡рд░реНрдб": "asd"}'

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпреВрдЖрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдорд╛рдзрд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо/рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо/рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде)

рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕реЗ рдЖрдЬрдорд╛рдЙрдВрдЧрд╛ рдФрд░ рджреЗрдЦреВрдВрдЧрд╛ :-)
рдореБрдЦреНрдп рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ ... рд╢рд╛рдпрдж рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреБрдЫ рдкрд╛рдпрдерди рдХреЛрдб рд╣реИ рдЬреЛ рдореИрдВрдиреЗ http рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ:

import requests

[ provide credential variables etc ]

grafana_url = os.path.join('http://', '%s:%u' % (grafana_host, grafana_port))
session = requests.Session()
login_post = session.post(
   os.path.join(grafana_url, 'login'),
   data=json.dumps({
      'user': grafana_user,
      'email': '',
      'password': grafana_password }),
   headers={'content-type': 'application/json'})

# Get list of datasources
datasources_get = session.get(os.path.join(grafana_url, 'api', 'datasources'))
datasources = datasources_get.json()

# Add new datasource
datasources_put = session.put(
   os.path.join(grafana_url, 'api', 'datasources'),
   data=json.dumps({
      'access': 'direct',
      'database': ifdb_database,
      'name': datasource_name,
      'password': ifdb_password,
      'type': 'influxdb_08',
      'url': 'http://%s:%u' % (ifdb_host, ifdb_port),
      'user': ifdb_user}),
      headers={'content-type': 'application/json'})

рдзрдиреНрдпрд╡рд╛рдж,
рдЪреВрдВрдХрд┐ рдпрд╣ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 'рдХрд░реНрд▓' рддрд░реАрдХрд╛ рдЬреИрдм рдмрдирд╛ рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдЬрдЧрд░ рдХреЗ рд╕рд╛рдорд╛рди рдХреА рднреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧреА рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛ :-)
рдИрд╕рд╛рдИ

рдореИрдВ рдЗрд╕реЗ 2.1 рдореЗрдВ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдПрдХ рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓ рднреА рдмрдирд╛рдКрдВрдЧрд╛ рдЬреЛ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ

рд╣рд╛рдп рдлрд┐рд░ рд╕реЗ рдЯреЛрд░рдХреЗрдбреЛ,
рдЖрдкрдиреЗ рдХрд╣рд╛ "рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдпреВрдЖрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред"
рдФрд░ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЬрдм рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд░реНрд▓ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ {"message":"Access рдирд┐рд╖реЗрдз"} рдорд┐рд▓рддрд╛ рд╣реИ
рдХреНрдпрд╛ рдЖрдк рд╕рдордЭрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "рд╕рдорд╛рдзрд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо/рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо/рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде)"
рдзрдиреНрдпрд╡рд╛рдж...

рдирдорд╕реНрддреЗ,
рдкреАрдЖрд░рдЖрдИ-рдореИрдХрд▓реЗрди рдХреЗ рдкрд╛рдпрдерди рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ :-) рдореИрдВ рдЙрд╕ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЬрд╛рдКрдВрдЧрд╛ред
рдореИрдВ рд╡рд┐рд╖рдп рдмрдВрдж рдХрд░рддрд╛ рд╣реВрдВред
рдзрдиреНрдпрд╡рд╛рдж!!

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

рдбреЙрдХрдЯрд░ рдореЗрдВ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реЗрд╢рд╛рдиреА рд╣реИред рд╣рдо рдПрдХ рдбреЙрдХрдЯрд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЯреВрд▓ (рдореЗрд╕реНрдЯреНрд░реЛ-рдПрдирдЬреА) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ рд╣реИ рдФрд░ рд╣рдо рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЯреВрд▓ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХрдВрдЯреЗрдирд░ рдФрд░ рдлрд┐рд░ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЯреВрд▓ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдХрдВрдЯреЗрдирд░ рдХреЗ рдкрддреЗ рдХреЛ env рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рдо рдЧреНрд░реЗрдлрд╛рдирд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЧреНрд░реЗрдлрд╛рдЗрдЯ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдЧреНрд░рд╛рдлрд╛рдирд╛ 1.9 рдореЗрдВ config.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддреЗ рдереЗ рд▓реЗрдХрд┐рди рдЕрдм рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ HTTP рдПрдкреАрдЖрдИ (рдЬреЛ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ) рд╣реИред

@iangkent , HTTP API (рд▓реЗрди-рджреЗрди рджреЗрдЦрдиреЗ рд╕реЗ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдКрдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкрд╛рдпрдерди рд╕реНрдирд┐рдкреЗрдЯ рджреЗрдЦреЗрдВред

рдирдорд╕реНрддреЗ

рдореИрдВ рдЕрдЬрдЧрд░ рд╕реНрдирд┐рдкреЗрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ @ PRI-mcallen рдиреЗ 2.1.0-pre1 рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ 2.0.2 рдФрд░ 2.0.3-pre1 рдореЗрдВ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)

рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдореБрдЭреЗ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓ рд░рд╣реА рд╣реИ рд╡рд╣ рд╣реИ:

datasources_put.json ()
{u'message': рдЖрдкрдХреЛ 'рдирд╣реАрдВ рдорд┐рд▓рд╛'}

рдФрд░ рдЧреНрд░рд╛рдлрд╛рдирд╛ рд▓реЙрдЧ рд╕реЗ:

2015/07/13 11:27:49 [рдореИрдВ] рдкреВрд░реНрдг/рдПрдкреАрдЖрдИ/рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд 404 1.169711 рдПрдордПрдордПрд╕ рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рд╛

рдореИрдВрдиреЗ рд╕реАрдзреЗ рдХрд░реНрд▓ рдФрд░ рдЙрд╕реА рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдХреБрдХреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рдкрд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)

рдХрд░реНрд▓ --рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ \
-рдПрдХреНрд╕ рдкреБрдЯ \
-рдПрдЪ 'рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░: рдПрдкреНрд▓рд┐рдХреЗрд╢рди/рдЬреЗрд╕рди; рд╡рд░реНрдгрд╕реЗрдЯ = рдпреВрдЯреАрдПрдл -8' \
--рдбреЗрдЯрд╛-рдмрд╛рдЗрдирд░реА "{\"name\":\"test4\",\"isDefault\":\"true\",\"type\":\"influxdb_08\",\"url\":\ " http://localhost :8086\",\"access\":\"proxy\",\"database\":\"test4\",\"user\":\"test4\",\"password \":\"рдЯреЗрд╕реНрдЯ4\"}" \
" http://172.16.149.149 : 3000/api/datasources"ред

{"рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рдорд┐рд▓рд╛"}

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдпрд╛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рдж
рдПрдлрд╝реНрд░реИрди

@ 3fr61n 2.1 рдореЗрдВ HTTP рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ (рдЗрд╕рдХреА

рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд HTTP рдПрдкреАрдЖрдИ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди, рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЬреЛрдбрд╝реЗрдВ рдЕрдм рдкреЛрд╕реНрдЯ / рдПрдкреАрдЖрдИ / рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд / рд╣реИ, рдЕрдкрдбреЗрдЯ рдЕрдм рдкреБрдЯ / рдПрдкреАрдЖрдИ / рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд /: рдЖрдИрдбреА рд╣реИ

рдзрдиреНрдпрд╡рд╛рдж!!! рдЕрдм рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЧреНрд░рд╛рдлрд╛рдирд╛ 2.1 рдореЗрдВ рдЕрдм рдЖрдк рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдЦрд┐рд▓рд╛рдл рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдмрдирд╛рдиреЗ (рдпрд╛ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП) рд▓реЙрдЧрд┐рди рдХрд░рдиреЗ рдФрд░ рдХреБрдХреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
https://github.com/grafana/grafana/issues/2218#issuecomment -117041541

рдХрд░реНрд▓ -i -XPOST ' http://admin:admin@hostname : 3000/api/datasources' --data-binary '{\"name\":\"influxdb_09x\",\"type\":\"influxdb \",\"рдкрд╣реБрдВрдЪ\":\"рдкреНрд░реЙрдХреНрд╕реА\",\"url\":\" http://hostname :8086\",\"password\":\"root\",\"user\" :\"root\",\"database\":\"cadvisor\",\"basicAuth\":true,\"basicAuthUser\":\"admin\",\"basicAuthPassword\":\"admin\" ,\"isDefault\":true,\"jsonData\":null}'

рдореБрдЭреЗ "[{"рдлрд╝реАрд▓реНрдбрдирд╛рдо": ["рдирд╛рдо"], "рд╡рд░реНрдЧреАрдХрд░рдг": "рдЖрд╡рд╢реНрдпрдХ рддреНрд░реБрдЯрд┐", "рд╕рдВрджреЗрд╢": "рдЖрд╡рд╢реНрдпрдХ"}, {"рдлрд╝реАрд▓реНрдбрдирд╛рдо": ["рдкреНрд░рдХрд╛рд░"], "рд╡рд░реНрдЧреАрдХрд░рдг":" рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред RequiredError","message":"Required"},{"fieldNames":["Access"],"classification":"RequiredError","message":"Required"}]"

рдЖрдкрдХреЛ рд╣реЗрдбрд░ рдХрдВрдЯреЗрдВрдЯ рдЯрд╛рдЗрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди/рдЬреЗрд╕рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдХрд░реНрд▓ -i -XPOST ' http://admin:admin@hostname : 3000/api/datasources' --header "ContentType application/json" --data-binary '{\"name\":\"influxdb2\", \"рдЯрд╛рдЗрдк\":\"influxdb_09x\",\"access\":\"proxy\",\"url\":\" http://hostname :8086\",\"password\":\" рд░реВрдЯ\",\"рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛\":\"рд░реВрдЯ\",\"рдбреЗрдЯрд╛рдмреЗрд╕\":\"рдХреИрдбрд╡рд╛рдЗрдЬрд░\",\"рдмреЗрд╕рд┐рдХрдСрде\":рд╕рдЪ,\"рдмреЗрд╕рд┐рдХрдСрдердпреВрдЬрд░\":\"рдПрдбрдорд┐рди\",\" BasicAuthPassword\":\"admin\",\"isDefault\":true,\"jsonData\":null}'

рдЕрднреА рднреА рдЙрдкрд░реЛрдХреНрдд рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛ рд░рд╣рд╛ рд╣реИ: /

рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ, рдЧрд╛рдпрдм рдХреЛрд▓рди ,-H 'Content-Type: application/json;charset=UTF-8' \

рдореИрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбреЙрдХрдЯрд░ рдЧреНрд░реЗрдлрд╛рдЗрдЯ (рд╣реЙрдкрд╕реЙрдлреНрдЯ/рдЧреНрд░реЗрдлрд╛рдЗрдЯ-рд╕реНрдЯреИрдЯреНрд╕рдбреА) рдФрд░ рдЧреНрд░рд╛рдлрд╛рдирд╛ (рдЧреНрд░рд╛рдлрд╛рдирд╛/рдЧреНрд░рд╛рдлрд╛рдирд╛) рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ:

curl 'http://admin:[email protected]:3000/api/datasources' -X POST -H 'Content-Type: application/json;charset=UTF-8' --data-binary '{"name":"localGraphite","type":"graphite","url":"http://192.168.99.100","access":"proxy","isDefault":true,"database":"asd"}'

Grafana 2.6 рдФрд░ influxdb 0.10 рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░реНрд▓ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:

curl 'http://admin:[email protected]:3000/api/datasources' -X POST -H 'Content-Type: application/json;charset=UTF-8' --data-binary '{"name":"influx","type":"influxdb","url":"http://localhost:8086","access":"proxy","isDefault":true,"database":"mydb","user":"admin","password":"admin"}'

рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
curl 'http://admin:[email protected]:3000/api/datasources'

рдпрд╣ рдореБрджреНрджрд╛ рдорд╛рд░реНрдЪ рдореЗрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдбреЙрдХрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрд╡рдЪреНрдЫ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдпрд╣ рдореБрджреНрджрд╛ рдорд╛рд░реНрдЪ рдореЗрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдбреЙрдХрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрд╡рдЪреНрдЫ рддрд░реАрдХреЗ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдХреНрдпрд╛ рд╣рдо рдореЗрдВ рдбреЛрдХрд░ рдореЗрдВ рдХреНрдпрд╛ run2.sh (рд╡рд╣рд╛рдБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рдПрдХ run.sh рдореЗрдВ grafana/grafana ):

echo 'Starting Grafana...'
/run.sh "$@" &
AddDataSource() {
  curl 'http://localhost:3000/api/datasources' \
    -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    --data-binary \
    '{"name":"Prometheus","type":"prometheus","url":"http://prometheus:9090","access":"proxy","isDefault":true}'
}
until AddDataSource; do
  echo 'Configuring Grafana...'
  sleep 1
done
echo 'Done!'
wait

рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рджреБрдЦрдж рдбрд┐рдЬрд╛рдЗрди рд╣реИред рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЧреНрд░рд╛рдлрд╛рдирд╛ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЬреАрдмред

рдЕрд░реЗ @torkelo , Grafana рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо!
рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛" рдЬрдм рдореИрдВ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрд┐рд╕реА рд╕рдВрдЧрдарди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ-

рдХрд░реНрд▓ 'http://:@:3000/api/orgs/6/users' -X POST -H 'Content-Type: application/json;charset=UTF-8' --data-binary '{"loginOrEmail": "user1", "рднреВрдорд┐рдХрд╛": "рджрд░реНрд╢рдХ"}'

рдореИрдВрдиреЗ рд╕рд╣реА рдореВрд▓ рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рджрд░реНрдЬ рдХрд┐рдП рд╣реИрдВред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди?
рдзрдиреНрдпрд╡рд╛рдж!

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдк рдЖрдордВрддреНрд░рдг рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдордВрддреНрд░рдг рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ

рдпрд╛ ansible рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ:

# Check that a page returns a status 200 and fail if the word AWESOME is not
# in the page contents.
- uri:
    url: http://localhost:3000/api/datasources/name/Prometheus
    user: admin
    password: changeme
    force_basic_auth: yes
  register: grafana_prometheus
  failed_when: false
  changed_when: false

- name: Enable Prometheus Datasource
  uri:
    url: http://localhost:3000/api/datasources
    method: POST
    user: admin
    password: changeme
    body:
      name: "Prometheus"
      type: "prometheus"
      url: "http://prometheus:9090"
      access: "proxy"
      isDefault: true
    force_basic_auth: yes
    status_code: 201
    body_format: json
  when: grafana_prometheus.status == 404

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

рдЧреНрд░рд╛рдлрд╛рдирд╛ 4.0.2 рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛:

cat <<EOF | sqlite3 grafana.db || echo "Failed to add data source."
INSERT INTO data_source VALUES (2,1,0,'prometheus','prometheus','proxy','http://address',NULL,NULL,NULL,0,NULL,NULL,0,'{}','2017-01-15 20:00:00','2017-01-15 20:00:00',0,'{}');
EOF

рдореИрдВ рдЗрд╕реЗ рд╕реАрдПрд▓рдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░рддрд╛ рд╣реВрдВред рдЯреВрд▓ рдЬреЛ рдореИрдВрдиреЗ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдерд╛ - wizzy https://github.com/utkarshcmu/wizzy

рдХреНрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдореБрдЭреЗ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП dashboards.json рд╕рдорд╛рди рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╛рдВрдЫрд┐рдд рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рдпрд╣рд╛рдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд╛рд▓реНрдЯрд╕реНрдЯреИрдХ рд░рд╛рдЬреНрдп рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рднреА рд╣реИ (рдЙрдкрд░реЛрдХреНрдд рдЙрддреНрддрд░рджрд╛рдпреА рдХреЛрдб рдХреЗ рд╕рдорд╛рди рд╣реА)ред рдпрд╣ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  http.query:
    - name: http://localhost:3000/api/datasources
    - method: POST
    - username: admin
    - password: admin
    - data: |
        {"name": "Prometheus",
        "type": "prometheus",
        "url": "http://localhost:9090",
        "access": "proxy",
        "isDefault": true}
    - header_list:
      - 'Content-Type: application/json'
    - status: 200
    - unless:
      - curl -f http://admin:admin<strong i="6">@localhost</strong>:3000/api/datasources/name/Prometheus

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

+1 рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реНрдерд┐рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм docker-compose рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ influxdb рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреНрд░рд╛рдлрд╛рдирд╛ рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)

+1 json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╣рдо рд╕рд╛рдЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрдардкреБрддрд▓реА рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ ES рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

+1

рдЧреБрд░реБ, 25 рдордИ, 2017 рдХреЛ рд╢рд╛рдо 5:36 рдмрдЬреЗ, рдПрдВрдЯреЛрди рдЯрд┐рдореЛрдлрд┐рдПрд╡ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

+1 json рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ ES рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдХрдардкреБрддрд▓реА рд╕реЗ, рд╕рд╛рдЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/grafana/grafana/issues/1789#issuecomment-304026003 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AFrnv_CDln7rDTlqZK6r_stAFIek7jaHks5r9ZHfgaJpZM4EBJaL
.

ЁЯСН рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдХреМрдВрд╕рд▓ рдХреЛ рдХреНрд╡реЗрд░реА рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде (рдЗрд╕рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА json)

https://github.com/grafana/grafana/pull/9504 . рджреНрд╡рд╛рд░рд╛ рдмрдВрдж

рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдореИрдВ рд▓реЛрдЪрджрд╛рд░ рдЦреЛрдЬ рд╡рд┐рд╡рд░рдг (рдЬреИрд╕реЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдирд╛рдо, рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдирд╛рдо рдФрд░ рд╕рдВрд╕реНрдХрд░рдг) рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдЪрд╛рд╣реЗ HTTP API рдпрд╛ conf рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдореБрдЭреЗ рдмрд╕ рдЙрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдХреБрдВрдЬреА рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ @timtofan рдЬреИрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд

рдХрд░реНрд▓ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ ' http://IPADDR : 3000/рдПрдкреАрдЖрдИ/рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд' http://localhost : 9090", "рдПрдХреНрд╕реЗрд╕": "рдкреНрд░реЙрдХреНрд╕реА", "рдмреЗрд╕рд┐рдХрдСрде": рдЭреВрдард╛}'

"isDefault": рд╕рдЪ рд╣реИ рдЕрдЧрд░ рдЖрдк рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ

рдпрд╣рд╛рдБ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдПрдХ рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЬреЛрдбрд╝рддрд╛ рд╣реВрдБ:
рдХрд░реНрд▓ - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ ' http://рдЖрдИрдкреАрдПрдбреАрдбреАрдЖрд░ : 3000/рдПрдкреАрдЖрдИ/рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд' http://localhost :9090",,"access":"proxy",,"basicAuth":false}'

рдХреНрдпрд╛ рдореИрдВ рд╕рднреА рд╕рдВрдЧрдардиреЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдБ?
рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдЧреНрд░рд╛рдлрд╛рдирд╛ 5 рдбреИрд╢рдмреЛрд░реНрдб рдХреЛ рдХреЛрдб рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ: http://docs.grafana.org/administration/provisioning/#datasources

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

kcajf picture kcajf  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

sslupsky picture sslupsky  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tcolgate picture tcolgate  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

utkarshcmu picture utkarshcmu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ericuldall picture ericuldall  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ