diff --git a/pkg/cluster/embed/autogen_pkger.go b/pkg/cluster/embed/autogen_pkger.go index 0125047afe..59739164d5 100644 --- a/pkg/cluster/embed/autogen_pkger.go +++ b/pkg/cluster/embed/autogen_pkger.go @@ -21,7 +21,7 @@ func init() { autogenFiles["/templates/config/dashboard.yml.tpl"] = "YXBpVmVyc2lvbjogMQpwcm92aWRlcnM6CiAgLSBuYW1lOiB7ey5DbHVzdGVyTmFtZX19CiAgICBmb2xkZXI6IHt7LkNsdXN0ZXJOYW1lfX0KICAgIHR5cGU6IGZpbGUKICAgIGRpc2FibGVEZWxldGlvbjogZmFsc2UKICAgIGVkaXRhYmxlOiB0cnVlCiAgICB1cGRhdGVJbnRlcnZhbFNlY29uZHM6IDMwCiAgICBvcHRpb25zOgogICAgICBwYXRoOiB7ey5EZXBsb3lEaXJ9fS9kYXNoYm9hcmRz" autogenFiles["/templates/config/datasource.yml.tpl"] = "YXBpVmVyc2lvbjogMQpkZWxldGVEYXRhc291cmNlczoKICAtIG5hbWU6IHt7LkNsdXN0ZXJOYW1lfX0KZGF0YXNvdXJjZXM6CiAgLSBuYW1lOiB7ey5DbHVzdGVyTmFtZX19CiAgICB0eXBlOiBwcm9tZXRoZXVzCiAgICBhY2Nlc3M6IHByb3h5CiAgICB1cmw6IGh0dHA6Ly97ey5JUH19Ont7LlBvcnR9fQogICAgd2l0aENyZWRlbnRpYWxzOiBmYWxzZQogICAgaXNEZWZhdWx0OiBmYWxzZQogICAgdGxzQXV0aDogZmFsc2UKICAgIHRsc0F1dGhXaXRoQ0FDZXJ0OiBmYWxzZQogICAgdmVyc2lvbjogMQogICAgZWRpdGFibGU6IHRydWU=" autogenFiles["/templates/config/grafana.ini.tpl"] = "IyMjIyMjIyMjIyMjIyMjIyMjIyMjIEdyYWZhbmEgQ29uZmlndXJhdGlvbiBFeGFtcGxlICMjIyMjIyMjIyMjIyMjIyMjIyMjIwojCiMgRXZlcnl0aGluZyBoYXMgZGVmYXVsdHMgc28geW91IG9ubHkgbmVlZCB0byB1bmNvbW1lbnQgdGhpbmdzIHlvdSB3YW50IHRvCiMgY2hhbmdlCgojIHBvc3NpYmxlIHZhbHVlcyA6IHByb2R1Y3Rpb24sIGRldmVsb3BtZW50CjsgYXBwX21vZGUgPSBwcm9kdWN0aW9uCgojIGluc3RhbmNlIG5hbWUsIGRlZmF1bHRzIHRvIEhPU1ROQU1FIGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlIG9yIGhvc3RuYW1lIGlmIEhPU1ROQU1FIHZhciBpcyBlbXB0eQo7IGluc3RhbmNlX25hbWUgPSAke0hPU1ROQU1FfQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFBhdGhzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpbcGF0aHNdCiMgUGF0aCB0byB3aGVyZSBncmFmYW5hIGNhbiBzdG9yZSB0ZW1wIGZpbGVzLCBzZXNzaW9ucywgYW5kIHRoZSBzcWxpdGUzIGRiIChpZiB0aGF0IGlzIHVzZWQpCiMKZGF0YSA9IHt7LkRlcGxveURpcn19L2RhdGEKIwojIERpcmVjdG9yeSB3aGVyZSBncmFmYW5hIGNhbiBzdG9yZSBsb2dzCiMKbG9ncyA9IHt7LkRlcGxveURpcn19L2xvZ3MKIwojIERpcmVjdG9yeSB3aGVyZSBncmFmYW5hIHdpbGwgYXV0b21hdGljYWxseSBzY2FuIGFuZCBsb29rIGZvciBwbHVnaW5zCiMKcGx1Z2lucyA9IHt7LkRlcGxveURpcn19L3BsdWdpbnMKIwojIGZvbGRlciB0aGF0IGNvbnRhaW5zIHByb3Zpc2lvbmluZyBjb25maWcgZmlsZXMgdGhhdCBncmFmYW5hIHdpbGwgYXBwbHkgb24gc3RhcnR1cCBhbmQgd2hpbGUgcnVubmluZy4KcHJvdmlzaW9uaW5nID0ge3suRGVwbG95RGlyfX0vcHJvdmlzaW9uaW5nCgojCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTZXJ2ZXIgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCltzZXJ2ZXJdCiMgUHJvdG9jb2wgKGh0dHAgb3IgaHR0cHMpCjtwcm90b2NvbCA9IGh0dHAKCiMgVGhlIGlwIGFkZHJlc3MgdG8gYmluZCB0bywgZW1wdHkgd2lsbCBiaW5kIHRvIGFsbCBpbnRlcmZhY2VzCjtodHRwX2FkZHIgPQoKIyBUaGUgaHR0cCBwb3J0ICB0byB1c2UKaHR0cF9wb3J0ID0ge3suUG9ydH19CgojIFRoZSBwdWJsaWMgZmFjaW5nIGRvbWFpbiBuYW1lIHVzZWQgdG8gYWNjZXNzIGdyYWZhbmEgZnJvbSBhIGJyb3dzZXIKe3stIGlmIC5Eb21haW59fQpkb21haW4gPSB7ey5Eb21haW59fQp7ey0gZWxzZX19CmRvbWFpbiA9IHt7LklQfX0Ke3stIGVuZH19CgojIFJlZGlyZWN0IHRvIGNvcnJlY3QgZG9tYWluIGlmIGhvc3QgaGVhZGVyIGRvZXMgbm90IG1hdGNoIGRvbWFpbgojIFByZXZlbnRzIEROUyByZWJpbmRpbmcgYXR0YWNrcwo7ZW5mb3JjZV9kb21haW4gPSBmYWxzZQoKIyBUaGUgZnVsbCBwdWJsaWMgZmFjaW5nIHVybAp7ey0gaWYgLlJvb3RVUkx9fQpyb290X3VybCA9IHt7LlJvb3RVUkx9fQpzZXJ2ZXJfZnJvbV9zdWJfcGF0aCA9IHRydWUKe3stIGVuZH19CgojIExvZyB3ZWIgcmVxdWVzdHMKO3JvdXRlcl9sb2dnaW5nID0gZmFsc2UKCiMgdGhlIHBhdGggcmVsYXRpdmUgd29ya2luZyBwYXRoCjtzdGF0aWNfcm9vdF9wYXRoID0gcHVibGljCgojIGVuYWJsZSBnemlwCjtlbmFibGVfZ3ppcCA9IGZhbHNlCgojIGh0dHBzIGNlcnRzICYga2V5IGZpbGUKO2NlcnRfZmlsZSA9CjtjZXJ0X2tleSA9CgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgRGF0YWJhc2UgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCltkYXRhYmFzZV0KIyBFaXRoZXIgIm15c3FsIiwgInBvc3RncmVzIiBvciAic3FsaXRlMyIsIGl0J3MgeW91ciBjaG9pY2UKO3R5cGUgPSBzcWxpdGUzCjtob3N0ID0gMTI3LjAuMC4xOjMzMDYKO25hbWUgPSBncmFmYW5hCjt1c2VyID0gcm9vdAo7cGFzc3dvcmQgPQoKIyBGb3IgInBvc3RncmVzIiBvbmx5LCBlaXRoZXIgImRpc2FibGUiLCAicmVxdWlyZSIgb3IgInZlcmlmeS1mdWxsIgo7c3NsX21vZGUgPSBkaXNhYmxlCgojIEZvciAic3FsaXRlMyIgb25seSwgcGF0aCByZWxhdGl2ZSB0byBkYXRhX3BhdGggc2V0dGluZwo7cGF0aCA9IGdyYWZhbmEuZGIKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTZXNzaW9uICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpbc2Vzc2lvbl0KIyBFaXRoZXIgIm1lbW9yeSIsICJmaWxlIiwgInJlZGlzIiwgIm15c3FsIiwgInBvc3RncmVzIiwgZGVmYXVsdCBpcyAiZmlsZSIKO3Byb3ZpZGVyID0gZmlsZQoKIyBQcm92aWRlciBjb25maWcgb3B0aW9ucwojIG1lbW9yeTogbm90IGhhdmUgYW55IGNvbmZpZyB5ZXQKIyBmaWxlOiBzZXNzaW9uIGRpciBwYXRoLCBpcyByZWxhdGl2ZSB0byBncmFmYW5hIGRhdGFfcGF0aAojIHJlZGlzOiBjb25maWcgbGlrZSByZWRpcyBzZXJ2ZXIgZS5nLiBgYWRkcj0xMjcuMC4wLjE6NjM3OSxwb29sX3NpemU9MTAwLGRiPWdyYWZhbmFgCiMgbXlzcWw6IGdvLXNxbC1kcml2ZXIvbXlzcWwgZHNuIGNvbmZpZyBzdHJpbmcsIGUuZy4gYHVzZXI6cGFzc3dvcmRAdGNwKDEyNy4wLjAuMTozMzA2KS9kYXRhYmFzZV9uYW1lYAojIHBvc3RncmVzOiB1c2VyPWEgcGFzc3dvcmQ9YiBob3N0PWxvY2FsaG9zdCBwb3J0PTU0MzIgZGJuYW1lPWMgc3NsbW9kZT1kaXNhYmxlCjtwcm92aWRlcl9jb25maWcgPSBzZXNzaW9ucwoKIyBTZXNzaW9uIGNvb2tpZSBuYW1lCjtjb29raWVfbmFtZSA9IGdyYWZhbmFfc2VzcwoKIyBJZiB5b3UgdXNlIHNlc3Npb24gaW4gaHR0cHMgb25seSwgZGVmYXVsdCBpcyBmYWxzZQo7Y29va2llX3NlY3VyZSA9IGZhbHNlCgojIFNlc3Npb24gbGlmZSB0aW1lLCBkZWZhdWx0IGlzIDg2NDAwCjtzZXNzaW9uX2xpZmVfdGltZSA9IDg2NDAwCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQW5hbHl0aWNzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpbYW5hbHl0aWNzXQojIFNlcnZlciByZXBvcnRpbmcsIHNlbmRzIHVzYWdlIGNvdW50ZXJzIHRvIHN0YXRzLmdyYWZhbmEub3JnIGV2ZXJ5IDI0IGhvdXJzLgojIE5vIGlwIGFkZHJlc3NlcyBhcmUgYmVpbmcgdHJhY2tlZCwgb25seSBzaW1wbGUgY291bnRlcnMgdG8gdHJhY2sKIyBydW5uaW5nIGluc3RhbmNlcywgZGFzaGJvYXJkIGFuZCBlcnJvciBjb3VudHMuIEl0IGlzIHZlcnkgaGVscGZ1bCB0byB1cy4KIyBDaGFuZ2UgdGhpcyBvcHRpb24gdG8gZmFsc2UgdG8gZGlzYWJsZSByZXBvcnRpbmcuCjtyZXBvcnRpbmdfZW5hYmxlZCA9IHRydWUKCiMgU2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgYWxsIGNoZWNrcyB0byBodHRwczovL2dyYWZhbmEubmV0CiMgZm9yIG5ldyB2ZXNpb25zIChncmFmYW5hIGl0c2VsZiBhbmQgcGx1Z2lucyksIGNoZWNrIGlzIHVzZWQKIyBpbiBzb21lIFVJIHZpZXdzIHRvIG5vdGlmeSB0aGF0IGdyYWZhbmEgb3IgcGx1Z2luIHVwZGF0ZSBleGlzdHMKIyBUaGlzIG9wdGlvbiBkb2VzIG5vdCBjYXVzZSBhbnkgYXV0byB1cGRhdGVzLCBub3Igc2VuZCBhbnkgaW5mb3JtYXRpb24KIyBvbmx5IGEgR0VUIHJlcXVlc3QgdG8gaHR0cDovL2dyYWZhbmEubmV0IHRvIGdldCBsYXRlc3QgdmVyc2lvbnMKY2hlY2tfZm9yX3VwZGF0ZXMgPSB0cnVlCgojIEdvb2dsZSBBbmFseXRpY3MgdW5pdmVyc2FsIHRyYWNraW5nIGNvZGUsIG9ubHkgZW5hYmxlZCBpZiB5b3Ugc3BlY2lmeSBhbiBpZCBoZXJlCjtnb29nbGVfYW5hbHl0aWNzX3VhX2lkID0KCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBTZWN1cml0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKW3NlY3VyaXR5XQojIGRlZmF1bHQgYWRtaW4gdXNlciwgY3JlYXRlZCBvbiBzdGFydHVwCmFkbWluX3VzZXIgPSB7ey5Vc2VybmFtZX19CgojIGRlZmF1bHQgYWRtaW4gcGFzc3dvcmQsIGNhbiBiZSBjaGFuZ2VkIGJlZm9yZSBmaXJzdCBzdGFydCBvZiBncmFmYW5hLCAgb3IgaW4gcHJvZmlsZSBzZXR0aW5ncwphZG1pbl9wYXNzd29yZCA9IHt7LlBhc3N3b3JkfX0KCiMgdXNlZCBmb3Igc2lnbmluZwo7c2VjcmV0X2tleSA9IFNXMlljd1RJYjl6cE9PaG9Qc01tCgojIEF1dG8tbG9naW4gcmVtZW1iZXIgZGF5cwo7bG9naW5fcmVtZW1iZXJfZGF5cyA9IDcKO2Nvb2tpZV91c2VybmFtZSA9IGdyYWZhbmFfdXNlcgo7Y29va2llX3JlbWVtYmVyX25hbWUgPSBncmFmYW5hX3JlbWVtYmVyCgojIGRpc2FibGUgZ3JhdmF0YXIgcHJvZmlsZSBpbWFnZXMKO2Rpc2FibGVfZ3JhdmF0YXIgPSBmYWxzZQoKIyBkYXRhIHNvdXJjZSBwcm94eSB3aGl0ZWxpc3QgKGlwX29yX2RvbWFpbjpwb3J0IHNlcGFyYXRlZCBieSBzcGFjZXMpCjtkYXRhX3NvdXJjZV9wcm94eV93aGl0ZWxpc3QgPQoKW3NuYXBzaG90c10KIyBzbmFwc2hvdCBzaGFyaW5nIG9wdGlvbnMKO2V4dGVybmFsX2VuYWJsZWQgPSB0cnVlCjtleHRlcm5hbF9zbmFwc2hvdF91cmwgPSBodHRwczovL3NuYXBzaG90cy1vcmlnaW4ucmFpbnRhbmsuaW8KO2V4dGVybmFsX3NuYXBzaG90X25hbWUgPSBQdWJsaXNoIHRvIHNuYXBzaG90LnJhaW50YW5rLmlvCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgVXNlcnMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClt1c2Vyc10KIyBkaXNhYmxlIHVzZXIgc2lnbnVwIC8gcmVnaXN0cmF0aW9uCjthbGxvd19zaWduX3VwID0gdHJ1ZQoKIyBBbGxvdyBub24gYWRtaW4gdXNlcnMgdG8gY3JlYXRlIG9yZ2FuaXphdGlvbnMKO2FsbG93X29yZ19jcmVhdGUgPSB0cnVlCgojIFNldCB0byB0cnVlIHRvIGF1dG9tYXRpY2FsbHkgYXNzaWduIG5ldyB1c2VycyB0byB0aGUgZGVmYXVsdCBvcmdhbml6YXRpb24gKGlkIDEpCjthdXRvX2Fzc2lnbl9vcmcgPSB0cnVlCgojIERlZmF1bHQgcm9sZSBuZXcgdXNlcnMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIChpZiBkaXNhYmxlZCBhYm92ZSBpcyBzZXQgdG8gdHJ1ZSkKO2F1dG9fYXNzaWduX29yZ19yb2xlID0gVmlld2VyCgojIEJhY2tncm91bmQgdGV4dCBmb3IgdGhlIHVzZXIgZmllbGQgb24gdGhlIGxvZ2luIHBhZ2UKO2xvZ2luX2hpbnQgPSBlbWFpbCBvciB1c2VybmFtZQoKIyBEZWZhdWx0IFVJIHRoZW1lICgiZGFyayIgb3IgImxpZ2h0IikKO2RlZmF1bHRfdGhlbWUgPSBkYXJrCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQW5vbnltb3VzIEF1dGggIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKW2F1dGguYW5vbnltb3VzXQp7ey0gaWYgLkFub255bW91c0VuYWJsZX19CmVuYWJsZWQgPSB0cnVlCnt7LSBlbmR9fQoKIyBzcGVjaWZ5IG9yZ2FuaXphdGlvbiBuYW1lIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHVuYXV0aGVudGljYXRlZCB1c2Vycwo7b3JnX25hbWUgPSBNYWluIE9yZy4KCiMgc3BlY2lmeSByb2xlIGZvciB1bmF1dGhlbnRpY2F0ZWQgdXNlcnMKO29yZ19yb2xlID0gVmlld2VyCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQmFzaWMgQXV0aCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpbYXV0aC5iYXNpY10KO2VuYWJsZWQgPSB0cnVlCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgQXV0aCBMREFQICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClthdXRoLmxkYXBdCjtlbmFibGVkID0gZmFsc2UKO2NvbmZpZ19maWxlID0gL2V0Yy9ncmFmYW5hL2xkYXAudG9tbAoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFNNVFAgLyBFbWFpbGluZyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpbc210cF0KO2VuYWJsZWQgPSBmYWxzZQo7aG9zdCA9IGxvY2FsaG9zdDoyNQo7dXNlciA9CjtwYXNzd29yZCA9CjtjZXJ0X2ZpbGUgPQo7a2V5X2ZpbGUgPQo7c2tpcF92ZXJpZnkgPSBmYWxzZQo7ZnJvbV9hZGRyZXNzID0gYWRtaW5AZ3JhZmFuYS5sb2NhbGhvc3QKCltlbWFpbHNdCjt3ZWxjb21lX2VtYWlsX29uX3NpZ25fdXAgPSBmYWxzZQoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIExvZ2dpbmcgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKW2xvZ10KIyBFaXRoZXIgImNvbnNvbGUiLCAiZmlsZSIsICJzeXNsb2ciLiBEZWZhdWx0IGlzIGNvbnNvbGUgYW5kICBmaWxlCiMgVXNlIHNwYWNlIHRvIHNlcGFyYXRlIG11bHRpcGxlIG1vZGVzLCBlLmcuICJjb25zb2xlIGZpbGUiCm1vZGUgPSBmaWxlCgojIEVpdGhlciAidHJhY2UiLCAiZGVidWciLCAiaW5mbyIsICJ3YXJuIiwgImVycm9yIiwgImNyaXRpY2FsIiwgZGVmYXVsdCBpcyAiaW5mbyIKO2xldmVsID0gaW5mbwoKIyBGb3IgImNvbnNvbGUiIG1vZGUgb25seQpbbG9nLmNvbnNvbGVdCjtsZXZlbCA9CgojIGxvZyBsaW5lIGZvcm1hdCwgdmFsaWQgb3B0aW9ucyBhcmUgdGV4dCwgY29uc29sZSBhbmQganNvbgo7Zm9ybWF0ID0gY29uc29sZQoKIyBGb3IgImZpbGUiIG1vZGUgb25seQpbbG9nLmZpbGVdCmxldmVsID0gaW5mbwoKIyBsb2cgbGluZSBmb3JtYXQsIHZhbGlkIG9wdGlvbnMgYXJlIHRleHQsIGNvbnNvbGUgYW5kIGpzb24KZm9ybWF0ID0gdGV4dAoKIyBUaGlzIGVuYWJsZXMgYXV0b21hdGVkIGxvZyByb3RhdGUoc3dpdGNoIG9mIGZvbGxvd2luZyBvcHRpb25zKSwgZGVmYXVsdCBpcyB0cnVlCjtsb2dfcm90YXRlID0gdHJ1ZQoKIyBNYXggbGluZSBudW1iZXIgb2Ygc2luZ2xlIGZpbGUsIGRlZmF1bHQgaXMgMTAwMDAwMAo7bWF4X2xpbmVzID0gMTAwMDAwMAoKIyBNYXggc2l6ZSBzaGlmdCBvZiBzaW5nbGUgZmlsZSwgZGVmYXVsdCBpcyAyOCBtZWFucyAxIDw8IDI4LCAyNTZNQgo7bWF4X3NpemVfc2hpZnQgPSAyOAoKIyBTZWdtZW50IGxvZyBkYWlseSwgZGVmYXVsdCBpcyB0cnVlCjtkYWlseV9yb3RhdGUgPSB0cnVlCgojIEV4cGlyZWQgZGF5cyBvZiBsb2cgZmlsZShkZWxldGUgYWZ0ZXIgbWF4IGRheXMpLCBkZWZhdWx0IGlzIDcKO21heF9kYXlzID0gNwoKW2xvZy5zeXNsb2ddCjtsZXZlbCA9CgojIGxvZyBsaW5lIGZvcm1hdCwgdmFsaWQgb3B0aW9ucyBhcmUgdGV4dCwgY29uc29sZSBhbmQganNvbgo7Zm9ybWF0ID0gdGV4dAoKIyBTeXNsb2cgbmV0d29yayB0eXBlIGFuZCBhZGRyZXNzLiBUaGlzIGNhbiBiZSB1ZHAsIHRjcCwgb3IgdW5peC4gSWYgbGVmdCBibGFuaywgdGhlIGRlZmF1bHQgdW5peCBlbmRwb2ludHMgd2lsbCBiZSB1c2VkLgo7bmV0d29yayA9CjthZGRyZXNzID0KCiMgU3lzbG9nIGZhY2lsaXR5LiB1c2VyLCBkYWVtb24gYW5kIGxvY2FsMCB0aHJvdWdoIGxvY2FsNyBhcmUgdmFsaWQuCjtmYWNpbGl0eSA9CgojIFN5c2xvZyB0YWcuIEJ5IGRlZmF1bHQsIHRoZSBwcm9jZXNzJyBhcmd2WzBdIGlzIHVzZWQuCjt0YWcgPQoKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBBTVFQIEV2ZW50IFB1Ymxpc2hlciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpbZXZlbnRfcHVibGlzaGVyXQo7ZW5hYmxlZCA9IGZhbHNlCjtyYWJiaXRtcV91cmwgPSBhbXFwOi8vbG9jYWxob3N0Lwo7ZXhjaGFuZ2UgPSBncmFmYW5hX2V2ZW50cwoKOyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBEYXNoYm9hcmQgSlNPTiBmaWxlcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpbZGFzaGJvYXJkcy5qc29uXQplbmFibGVkID0gZmFsc2UKcGF0aCA9IHt7LkRlcGxveURpcn19L2Rhc2hib2FyZHMKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBJbnRlcm5hbCBHcmFmYW5hIE1ldHJpY3MgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyBNZXRyaWNzIGF2YWlsYWJsZSBhdCBIVFRQIEFQSSBVcmwgL2FwaS9tZXRyaWNzClttZXRyaWNzXQojIERpc2FibGUgLyBFbmFibGUgaW50ZXJuYWwgbWV0cmljcwo7ZW5hYmxlZCAgICAgICAgICAgPSB0cnVlCgojIFB1Ymxpc2ggaW50ZXJ2YWwKO2ludGVydmFsX3NlY29uZHMgID0gMTAKCiMgU2VuZCBpbnRlcm5hbCBtZXRyaWNzIHRvIEdyYXBoaXRlCjsgW21ldHJpY3MuZ3JhcGhpdGVdCjsgYWRkcmVzcyA9IGxvY2FsaG9zdDoyMDAzCjsgcHJlZml4ID0gcHJvZC5ncmFmYW5hLiUoaW5zdGFuY2VfbmFtZSlzLgoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIEludGVybmFsIEdyYWZhbmEgTWV0cmljcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFVybCB1c2VkIHRvIHRvIGltcG9ydCBkYXNoYm9hcmRzIGRpcmVjdGx5IGZyb20gR3JhZmFuYS5uZXQKW2dyYWZhbmFfbmV0XQp1cmwgPSBodHRwczovL2dyYWZhbmEubmV0" - autogenFiles["/templates/config/prometheus.yml.tpl"] = "LS0tCmdsb2JhbDoKICBzY3JhcGVfaW50ZXJ2YWw6ICAgICAxNXMgIyBCeSBkZWZhdWx0LCBzY3JhcGUgdGFyZ2V0cyBldmVyeSAxNSBzZWNvbmRzLgogIGV2YWx1YXRpb25faW50ZXJ2YWw6IDE1cyAjIEJ5IGRlZmF1bHQsIHNjcmFwZSB0YXJnZXRzIGV2ZXJ5IDE1IHNlY29uZHMuCiAgIyBzY3JhcGVfdGltZW91dCBpcyBzZXQgdG8gdGhlIGdsb2JhbCBkZWZhdWx0ICgxMHMpLgogIGV4dGVybmFsX2xhYmVsczoKICAgIGNsdXN0ZXI6ICd7ey5DbHVzdGVyTmFtZX19JwogICAgbW9uaXRvcjogInByb21ldGhldXMiCgojIExvYWQgYW5kIGV2YWx1YXRlIHJ1bGVzIGluIHRoaXMgZmlsZSBldmVyeSAnZXZhbHVhdGlvbl9pbnRlcnZhbCcgc2Vjb25kcy4KcnVsZV9maWxlczoKe3stIGlmIC5Mb2NhbFJ1bGVzfX0Ke3stIHJhbmdlIC5Mb2NhbFJ1bGVzfX0KICAtICd7ey59fScKe3stIGVuZH19Cnt7LSBlbHNlfX0Ke3stIGlmIC5Nb25pdG9yZWRTZXJ2ZXJzfX0KICAtICdub2RlLnJ1bGVzLnltbCcKICAtICdibGFja2VyLnJ1bGVzLnltbCcKICAtICdieXBhc3MucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5QREFkZHJzfX0KICAtICdwZC5ydWxlcy55bWwnCnt7LSBlbmR9fQp7ey0gaWYgLlRpREJTdGF0dXNBZGRyc319CiAgLSAndGlkYi5ydWxlcy55bWwnCnt7LSBlbmR9fQp7ey0gaWYgLlRpS1ZTdGF0dXNBZGRyc319CiAgLSAndGlrdi5ydWxlcy55bWwnCiAgLSAndGlrdi5hY2NlbGVyYXRlLnJ1bGVzLnltbCcKe3stIGVuZH19Cnt7LSBpZiAuVGlGbGFzaFN0YXR1c0FkZHJzfX0KICAtICd0aWZsYXNoLnJ1bGVzLnltbCcKe3stIGVuZH19Cnt7LSBpZiAuUHVtcEFkZHJzfX0KICAtICdiaW5sb2cucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5DRENBZGRyc319CiAgLSAndGljZGMucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5LYWZrYUFkZHJzfX0KICAtICdrYWZrYS5ydWxlcy55bWwnCnt7LSBlbmR9fQp7ey0gaWYgLkxpZ2h0bmluZ0FkZHJzfX0KICAtICdsaWdodG5pbmcucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5ETVdvcmtlckFkZHJzfX0KICAtICdkbV93b3JrZXIucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5ETU1hc3RlckFkZHJzfX0KICAtICdkbV9tYXN0ZXIucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGVuZH19Cgp7ey0gaWYgLkFsZXJ0bWFuYWdlckFkZHJzfX0KYWxlcnRpbmc6CiAgYWxlcnRtYW5hZ2VyczoKICAtIHN0YXRpY19jb25maWdzOgogICAgLSB0YXJnZXRzOgp7ey0gcmFuZ2UgLkFsZXJ0bWFuYWdlckFkZHJzfX0KICAgICAgLSAne3sufX0nCnt7LSBlbmR9fQp7ey0gZW5kfX0KCnNjcmFwZV9jb25maWdzOgp7ey0gaWYgLlB1c2hnYXRld2F5QWRkcn19CiAgLSBqb2JfbmFtZTogJ292ZXJ3cml0dGVuLWNsdXN0ZXInCiAgICBzY3JhcGVfaW50ZXJ2YWw6IDE1cwogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAgIC0gdGFyZ2V0czogWyd7ey5QdXNoZ2F0ZXdheUFkZHJ9fSddCgogIC0gam9iX25hbWU6ICJibGFja2JveF9leHBvcnRlcl9odHRwIgogICAgc2NyYXBlX2ludGVydmFsOiAzMHMKICAgIG1ldHJpY3NfcGF0aDogL3Byb2JlCiAgICBwYXJhbXM6CiAgICAgIG1vZHVsZTogW2h0dHBfMnh4XQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICAgIC0gJ2h0dHA6Ly97ey5QdXNoZ2F0ZXdheUFkZHJ9fS9tZXRyaWNzJwogICAgcmVsYWJlbF9jb25maWdzOgogICAgICAtIHNvdXJjZV9sYWJlbHM6IFtfX2FkZHJlc3NfX10KICAgICAgICB0YXJnZXRfbGFiZWw6IF9fcGFyYW1fdGFyZ2V0CiAgICAgIC0gc291cmNlX2xhYmVsczogW19fcGFyYW1fdGFyZ2V0XQogICAgICAgIHRhcmdldF9sYWJlbDogaW5zdGFuY2UKICAgICAgLSB0YXJnZXRfbGFiZWw6IF9fYWRkcmVzc19fCiAgICAgICAgcmVwbGFjZW1lbnQ6IHt7LkJsYWNrYm94QWRkcn19Cnt7LSBlbmR9fQp7ey0gaWYgLkxpZ2h0bmluZ0FkZHJzfX0KICAtIGpvYl9uYW1lOiAibGlnaHRuaW5nIgp7ey0gaWYgLlRMU0VuYWJsZWR9fQogICAgc2NoZW1lOiBodHRwcwogICAgdGxzX2NvbmZpZzoKICAgICAgaW5zZWN1cmVfc2tpcF92ZXJpZnk6IGZhbHNlCiAgICAgIGNhX2ZpbGU6IC4uL3Rscy9jYS5jcnQKICAgICAgY2VydF9maWxlOiAuLi90bHMvcHJvbWV0aGV1cy5jcnQKICAgICAga2V5X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLnBlbQp7ey0gZW5kfX0KICAgIHN0YXRpY19jb25maWdzOgogICAgICAtIHRhcmdldHM6IFsne3tpbmRleCAuTGlnaHRuaW5nQWRkcnMgMH19J10Ke3stIGVuZH19CiAgLSBqb2JfbmFtZTogIm92ZXJ3cml0dGVuLW5vZGVzIgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6Cnt7LSByYW5nZSAuTm9kZUV4cG9ydGVyQWRkcnN9fQogICAgICAtICd7ey59fScKe3stIGVuZH19CiAgLSBqb2JfbmFtZTogInRpZGIiCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCnt7LSBpZiAuVExTRW5hYmxlZH19CiAgICBzY2hlbWU6IGh0dHBzCiAgICB0bHNfY29uZmlnOgogICAgICBpbnNlY3VyZV9za2lwX3ZlcmlmeTogZmFsc2UKICAgICAgY2FfZmlsZTogLi4vdGxzL2NhLmNydAogICAgICBjZXJ0X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLmNydAogICAgICBrZXlfZmlsZTogLi4vdGxzL3Byb21ldGhldXMucGVtCnt7LSBlbmR9fQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6Cnt7LSByYW5nZSAuVGlEQlN0YXR1c0FkZHJzfX0KICAgICAgLSAne3sufX0nCnt7LSBlbmR9fQogIC0gam9iX25hbWU6ICJ0aWt2IgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwp7ey0gaWYgLlRMU0VuYWJsZWR9fQogICAgc2NoZW1lOiBodHRwcwogICAgdGxzX2NvbmZpZzoKICAgICAgaW5zZWN1cmVfc2tpcF92ZXJpZnk6IGZhbHNlCiAgICAgIGNhX2ZpbGU6IC4uL3Rscy9jYS5jcnQKICAgICAgY2VydF9maWxlOiAuLi90bHMvcHJvbWV0aGV1cy5jcnQKICAgICAga2V5X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLnBlbQp7ey0gZW5kfX0KICAgIHN0YXRpY19jb25maWdzOgogICAgLSB0YXJnZXRzOgp7ey0gcmFuZ2UgLlRpS1ZTdGF0dXNBZGRyc319CiAgICAgIC0gJ3t7Ln19Jwp7ey0gZW5kfX0KICAtIGpvYl9uYW1lOiAicGQiCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCnt7LSBpZiAuVExTRW5hYmxlZH19CiAgICBzY2hlbWU6IGh0dHBzCiAgICB0bHNfY29uZmlnOgogICAgICBpbnNlY3VyZV9za2lwX3ZlcmlmeTogZmFsc2UKICAgICAgY2FfZmlsZTogLi4vdGxzL2NhLmNydAogICAgICBjZXJ0X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLmNydAogICAgICBrZXlfZmlsZTogLi4vdGxzL3Byb21ldGhldXMucGVtCnt7LSBlbmR9fQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6Cnt7LSByYW5nZSAuUERBZGRyc319CiAgICAgIC0gJ3t7Ln19Jwp7ey0gZW5kfX0Ke3stIGlmIC5UaUZsYXNoU3RhdHVzQWRkcnN9fQogIC0gam9iX25hbWU6ICJ0aWZsYXNoIgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwp7ey0gaWYgLlRMU0VuYWJsZWR9fQogICAgc2NoZW1lOiBodHRwcwogICAgdGxzX2NvbmZpZzoKICAgICAgaW5zZWN1cmVfc2tpcF92ZXJpZnk6IGZhbHNlCiAgICAgIGNhX2ZpbGU6IC4uL3Rscy9jYS5jcnQKICAgICAgY2VydF9maWxlOiAuLi90bHMvcHJvbWV0aGV1cy5jcnQKICAgICAga2V5X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLnBlbQp7ey0gZW5kfX0KICAgIHN0YXRpY19jb25maWdzOgogICAgLSB0YXJnZXRzOgogICAge3stIHJhbmdlIC5UaUZsYXNoU3RhdHVzQWRkcnN9fQogICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgIHt7LSByYW5nZSAuVGlGbGFzaExlYXJuZXJTdGF0dXNBZGRyc319CiAgICAgICAtICd7ey59fScKICAgIHt7LSBlbmR9fQp7ey0gZW5kfX0Ke3stIGlmIC5QdW1wQWRkcnN9fQp7ey0gaWYgLkthZmthRXhwb3J0ZXJBZGRyfX0KICAtIGpvYl9uYW1lOiAna2Fma2FfZXhwb3J0ZXInCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCiAgICBzdGF0aWNfY29uZmlnczoKICAgIC0gdGFyZ2V0czoKICAgICAgLSAne3suS2Fma2FFeHBvcnRlckFkZHJ9fScKe3stIGVuZH19CiAgLSBqb2JfbmFtZTogJ3B1bXAnCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCnt7LSBpZiAuVExTRW5hYmxlZH19CiAgICBzY2hlbWU6IGh0dHBzCiAgICB0bHNfY29uZmlnOgogICAgICBpbnNlY3VyZV9za2lwX3ZlcmlmeTogZmFsc2UKICAgICAgY2FfZmlsZTogLi4vdGxzL2NhLmNydAogICAgICBjZXJ0X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLmNydAogICAgICBrZXlfZmlsZTogLi4vdGxzL3Byb21ldGhldXMucGVtCnt7LSBlbmR9fQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLlB1bXBBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgLSBqb2JfbmFtZTogJ2RyYWluZXInCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCnt7LSBpZiAuVExTRW5hYmxlZH19CiAgICBzY2hlbWU6IGh0dHBzCiAgICB0bHNfY29uZmlnOgogICAgICBpbnNlY3VyZV9za2lwX3ZlcmlmeTogZmFsc2UKICAgICAgY2FfZmlsZTogLi4vdGxzL2NhLmNydAogICAgICBjZXJ0X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLmNydAogICAgICBrZXlfZmlsZTogLi4vdGxzL3Byb21ldGhldXMucGVtCnt7LSBlbmR9fQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLkRyYWluZXJBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgLSBqb2JfbmFtZTogInBvcnRfcHJvYmUiCiAgICBzY3JhcGVfaW50ZXJ2YWw6IDMwcwogICAgbWV0cmljc19wYXRoOiAvcHJvYmUKICAgIHBhcmFtczoKICAgICAgbW9kdWxlOiBbdGNwX2Nvbm5lY3RdCiAgICBzdGF0aWNfY29uZmlnczoKe3stIGlmIC5LYWZrYUFkZHJzfX0KICAgIC0gdGFyZ2V0czoKICAgIHt7LSByYW5nZSAuS2Fma2FBZGRyc319CiAgICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgICAgbGFiZWxzOgogICAgICAgIGdyb3VwOiAna2Fma2EnCnt7LSBlbmR9fQp7ey0gaWYgLlpvb2tlZXBlckFkZHJzfX0KICAgIC0gdGFyZ2V0czoKICAgIHt7LSByYW5nZSAuWm9va2VlcGVyQWRkcnN9fQogICAgICAtICd7ey59fScKICAgIHt7LSBlbmR9fQogICAgICBsYWJlbHM6CiAgICAgICAgZ3JvdXA6ICd6b29rZWVwZXInCnt7LSBlbmR9fQogICAgLSB0YXJnZXRzOgp7ey0gcmFuZ2UgLlB1bXBBZGRyc319CiAgICAgIC0gJ3t7Ln19Jwp7ey0gZW5kfX0KICAgICAgbGFiZWxzOgogICAgICAgIGdyb3VwOiAncHVtcCcKICAgIC0gdGFyZ2V0czoKICAgIHt7LSByYW5nZSAuRHJhaW5lckFkZHJzfX0KICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgICAgbGFiZWxzOgogICAgICAgIGdyb3VwOiAnZHJhaW5lcicKe3stIGlmIC5LYWZrYUV4cG9ydGVyQWRkcn19CiAgICAtIHRhcmdldHM6CiAgICAgIC0gJ3t7LkthZmthRXhwb3J0ZXJBZGRyfX0nCiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ2thZmthX2V4cG9ydGVyJwp7ey0gZW5kfX0KICAgIHJlbGFiZWxfY29uZmlnczoKICAgICAgLSBzb3VyY2VfbGFiZWxzOiBbX19hZGRyZXNzX19dCiAgICAgICAgdGFyZ2V0X2xhYmVsOiBfX3BhcmFtX3RhcmdldAogICAgICAtIHNvdXJjZV9sYWJlbHM6IFtfX3BhcmFtX3RhcmdldF0KICAgICAgICB0YXJnZXRfbGFiZWw6IGluc3RhbmNlCiAgICAgIC0gdGFyZ2V0X2xhYmVsOiBfX2FkZHJlc3NfXwogICAgICAgIHJlcGxhY2VtZW50OiB7ey5CbGFja2JveEFkZHJ9fQp7ey0gZW5kfX0Ke3stIGlmIC5DRENBZGRyc319CiAgLSBqb2JfbmFtZTogInRpY2RjIgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwp7ey0gaWYgLlRMU0VuYWJsZWR9fQogICAgc2NoZW1lOiBodHRwcwogICAgdGxzX2NvbmZpZzoKICAgICAgaW5zZWN1cmVfc2tpcF92ZXJpZnk6IGZhbHNlCiAgICAgIGNhX2ZpbGU6IC4uL3Rscy9jYS5jcnQKICAgICAgY2VydF9maWxlOiAuLi90bHMvcHJvbWV0aGV1cy5jcnQKICAgICAga2V5X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLnBlbQp7ey0gZW5kfX0KICAgIHN0YXRpY19jb25maWdzOgogICAgLSB0YXJnZXRzOgp7ey0gcmFuZ2UgLkNEQ0FkZHJzfX0KICAgICAgLSAne3sufX0nCnt7LSBlbmR9fQp7ey0gZW5kfX0KICAtIGpvYl9uYW1lOiAidGlkYl9wb3J0X3Byb2JlIgogICAgc2NyYXBlX2ludGVydmFsOiAzMHMKICAgIG1ldHJpY3NfcGF0aDogL3Byb2JlCiAgICBwYXJhbXM6CiAgICAgIG1vZHVsZTogW3RjcF9jb25uZWN0XQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLlRpREJTdGF0dXNBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ3RpZGInCiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLlRpS1ZTdGF0dXNBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ3Rpa3YnCiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLlBEQWRkcnN9fQogICAgICAtICd7ey59fScKICAgIHt7LSBlbmR9fQogICAgICBsYWJlbHM6CiAgICAgICAgZ3JvdXA6ICdwZCcKe3stIGlmIC5UaUZsYXNoU3RhdHVzQWRkcnN9fQogICAgLSB0YXJnZXRzOgogICAge3stIHJhbmdlIC5UaUZsYXNoU3RhdHVzQWRkcnN9fQogICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgICAgbGFiZWxzOgogICAgICAgIGdyb3VwOiAndGlmbGFzaCcKe3stIGVuZH19Cnt7LSBpZiAuUHVzaGdhdGV3YXlBZGRyfX0KICAgIC0gdGFyZ2V0czoKICAgICAgLSAne3suUHVzaGdhdGV3YXlBZGRyfX0nCiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ3B1c2hnYXRld2F5Jwp7ey0gZW5kfX0Ke3stIGlmIC5HcmFmYW5hQWRkcn19CiAgICAtIHRhcmdldHM6CiAgICAgIC0gJ3t7LkdyYWZhbmFBZGRyfX0nCiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ2dyYWZhbmEnCnt7LSBlbmR9fQogICAgLSB0YXJnZXRzOgogICAge3stIHJhbmdlIC5Ob2RlRXhwb3J0ZXJBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ25vZGVfZXhwb3J0ZXInCiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLkJsYWNrYm94RXhwb3J0ZXJBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ2JsYWNrYm94X2V4cG9ydGVyJwogICAgcmVsYWJlbF9jb25maWdzOgogICAgICAtIHNvdXJjZV9sYWJlbHM6IFtfX2FkZHJlc3NfX10KICAgICAgICB0YXJnZXRfbGFiZWw6IF9fcGFyYW1fdGFyZ2V0CiAgICAgIC0gc291cmNlX2xhYmVsczogW19fcGFyYW1fdGFyZ2V0XQogICAgICAgIHRhcmdldF9sYWJlbDogaW5zdGFuY2UKICAgICAgLSB0YXJnZXRfbGFiZWw6IF9fYWRkcmVzc19fCiAgICAgICAgcmVwbGFjZW1lbnQ6IHt7LkJsYWNrYm94QWRkcn19Cnt7LSByYW5nZSAkYWRkciA6PSAuQmxhY2tib3hFeHBvcnRlckFkZHJzfX0KICAtIGpvYl9uYW1lOiAiYmxhY2tib3hfZXhwb3J0ZXJfe3skYWRkcn19X2ljbXAiCiAgICBzY3JhcGVfaW50ZXJ2YWw6IDZzCiAgICBtZXRyaWNzX3BhdGg6IC9wcm9iZQogICAgcGFyYW1zOgogICAgICBtb2R1bGU6IFtpY21wXQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgJC5Nb25pdG9yZWRTZXJ2ZXJzfX0KICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgIHJlbGFiZWxfY29uZmlnczoKICAgICAgLSBzb3VyY2VfbGFiZWxzOiBbX19hZGRyZXNzX19dCiAgICAgICAgcmVnZXg6ICguKikoOjgwKT8KICAgICAgICB0YXJnZXRfbGFiZWw6IF9fcGFyYW1fdGFyZ2V0CiAgICAgICAgcmVwbGFjZW1lbnQ6ICR7MX0KICAgICAgLSBzb3VyY2VfbGFiZWxzOiBbX19wYXJhbV90YXJnZXRdCiAgICAgICAgcmVnZXg6ICguKikKICAgICAgICB0YXJnZXRfbGFiZWw6IHBpbmcKICAgICAgICByZXBsYWNlbWVudDogJHsxfQogICAgICAtIHNvdXJjZV9sYWJlbHM6IFtdCiAgICAgICAgcmVnZXg6IC4qCiAgICAgICAgdGFyZ2V0X2xhYmVsOiBfX2FkZHJlc3NfXwogICAgICAgIHJlcGxhY2VtZW50OiB7eyRhZGRyfX0Ke3stIGVuZH19Cgp7ey0gaWYgLkRNTWFzdGVyQWRkcnN9fQogIC0gam9iX25hbWU6ICJkbV9tYXN0ZXIiCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCiAgICBzdGF0aWNfY29uZmlnczoKICAgIC0gdGFyZ2V0czoKICAgIHt7LSByYW5nZSAuRE1NYXN0ZXJBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19Cnt7LSBlbmR9fQoKe3stIGlmIC5ETVdvcmtlckFkZHJzfX0KICAtIGpvYl9uYW1lOiAiZG1fd29ya2VyIgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLkRNV29ya2VyQWRkcnN9fQogICAgICAtICd7ey59fScKICAgIHt7LSBlbmR9fQp7ey0gZW5kfX0K" + autogenFiles["/templates/config/prometheus.yml.tpl"] = "LS0tCmdsb2JhbDoKICBzY3JhcGVfaW50ZXJ2YWw6ICAgICAxNXMgIyBCeSBkZWZhdWx0LCBzY3JhcGUgdGFyZ2V0cyBldmVyeSAxNSBzZWNvbmRzLgogIGV2YWx1YXRpb25faW50ZXJ2YWw6IDE1cyAjIEJ5IGRlZmF1bHQsIHNjcmFwZSB0YXJnZXRzIGV2ZXJ5IDE1IHNlY29uZHMuCiAgIyBzY3JhcGVfdGltZW91dCBpcyBzZXQgdG8gdGhlIGdsb2JhbCBkZWZhdWx0ICgxMHMpLgogIGV4dGVybmFsX2xhYmVsczoKICAgIGNsdXN0ZXI6ICd7ey5DbHVzdGVyTmFtZX19JwogICAgbW9uaXRvcjogInByb21ldGhldXMiCgojIExvYWQgYW5kIGV2YWx1YXRlIHJ1bGVzIGluIHRoaXMgZmlsZSBldmVyeSAnZXZhbHVhdGlvbl9pbnRlcnZhbCcgc2Vjb25kcy4KcnVsZV9maWxlczoKe3stIGlmIC5Mb2NhbFJ1bGVzfX0Ke3stIHJhbmdlIC5Mb2NhbFJ1bGVzfX0KICAtICd7ey59fScKe3stIGVuZH19Cnt7LSBlbHNlfX0Ke3stIGlmIC5Nb25pdG9yZWRTZXJ2ZXJzfX0KICAtICdub2RlLnJ1bGVzLnltbCcKICAtICdibGFja2VyLnJ1bGVzLnltbCcKICAtICdieXBhc3MucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5QREFkZHJzfX0KICAtICdwZC5ydWxlcy55bWwnCnt7LSBlbmR9fQp7ey0gaWYgLlRpREJTdGF0dXNBZGRyc319CiAgLSAndGlkYi5ydWxlcy55bWwnCnt7LSBlbmR9fQp7ey0gaWYgLlRpS1ZTdGF0dXNBZGRyc319CiAgLSAndGlrdi5ydWxlcy55bWwnCiAgLSAndGlrdi5hY2NlbGVyYXRlLnJ1bGVzLnltbCcKe3stIGVuZH19Cnt7LSBpZiAuVGlGbGFzaFN0YXR1c0FkZHJzfX0KICAtICd0aWZsYXNoLnJ1bGVzLnltbCcKe3stIGVuZH19Cnt7LSBpZiAuUHVtcEFkZHJzfX0KICAtICdiaW5sb2cucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5DRENBZGRyc319CiAgLSAndGljZGMucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5LYWZrYUFkZHJzfX0KICAtICdrYWZrYS5ydWxlcy55bWwnCnt7LSBlbmR9fQp7ey0gaWYgLkxpZ2h0bmluZ0FkZHJzfX0KICAtICdsaWdodG5pbmcucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5ETVdvcmtlckFkZHJzfX0KICAtICdkbV93b3JrZXIucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGlmIC5ETU1hc3RlckFkZHJzfX0KICAtICdkbV9tYXN0ZXIucnVsZXMueW1sJwp7ey0gZW5kfX0Ke3stIGVuZH19Cgp7ey0gaWYgLkFsZXJ0bWFuYWdlckFkZHJzfX0KYWxlcnRpbmc6CiAgYWxlcnRtYW5hZ2VyczoKICAtIHN0YXRpY19jb25maWdzOgogICAgLSB0YXJnZXRzOgp7ey0gcmFuZ2UgLkFsZXJ0bWFuYWdlckFkZHJzfX0KICAgICAgLSAne3sufX0nCnt7LSBlbmR9fQp7ey0gZW5kfX0KCnNjcmFwZV9jb25maWdzOgp7ey0gaWYgLlB1c2hnYXRld2F5QWRkcn19CiAgLSBqb2JfbmFtZTogJ292ZXJ3cml0dGVuLWNsdXN0ZXInCiAgICBzY3JhcGVfaW50ZXJ2YWw6IDE1cwogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAgIC0gdGFyZ2V0czogWyd7ey5QdXNoZ2F0ZXdheUFkZHJ9fSddCgogIC0gam9iX25hbWU6ICJibGFja2JveF9leHBvcnRlcl9odHRwIgogICAgc2NyYXBlX2ludGVydmFsOiAzMHMKICAgIG1ldHJpY3NfcGF0aDogL3Byb2JlCiAgICBwYXJhbXM6CiAgICAgIG1vZHVsZTogW2h0dHBfMnh4XQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICAgIC0gJ2h0dHA6Ly97ey5QdXNoZ2F0ZXdheUFkZHJ9fS9tZXRyaWNzJwogICAgcmVsYWJlbF9jb25maWdzOgogICAgICAtIHNvdXJjZV9sYWJlbHM6IFtfX2FkZHJlc3NfX10KICAgICAgICB0YXJnZXRfbGFiZWw6IF9fcGFyYW1fdGFyZ2V0CiAgICAgIC0gc291cmNlX2xhYmVsczogW19fcGFyYW1fdGFyZ2V0XQogICAgICAgIHRhcmdldF9sYWJlbDogaW5zdGFuY2UKICAgICAgLSB0YXJnZXRfbGFiZWw6IF9fYWRkcmVzc19fCiAgICAgICAgcmVwbGFjZW1lbnQ6IHt7LkJsYWNrYm94QWRkcn19Cnt7LSBlbmR9fQp7ey0gaWYgLkxpZ2h0bmluZ0FkZHJzfX0KICAtIGpvYl9uYW1lOiAibGlnaHRuaW5nIgp7ey0gaWYgLlRMU0VuYWJsZWR9fQogICAgc2NoZW1lOiBodHRwcwogICAgdGxzX2NvbmZpZzoKICAgICAgaW5zZWN1cmVfc2tpcF92ZXJpZnk6IGZhbHNlCiAgICAgIGNhX2ZpbGU6IC4uL3Rscy9jYS5jcnQKICAgICAgY2VydF9maWxlOiAuLi90bHMvcHJvbWV0aGV1cy5jcnQKICAgICAga2V5X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLnBlbQp7ey0gZW5kfX0KICAgIHN0YXRpY19jb25maWdzOgogICAgICAtIHRhcmdldHM6IFsne3tpbmRleCAuTGlnaHRuaW5nQWRkcnMgMH19J10Ke3stIGVuZH19CiAgLSBqb2JfbmFtZTogIm92ZXJ3cml0dGVuLW5vZGVzIgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6Cnt7LSByYW5nZSAuTm9kZUV4cG9ydGVyQWRkcnN9fQogICAgICAtICd7ey59fScKe3stIGVuZH19CiAgLSBqb2JfbmFtZTogInRpZGIiCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCnt7LSBpZiAuVExTRW5hYmxlZH19CiAgICBzY2hlbWU6IGh0dHBzCiAgICB0bHNfY29uZmlnOgogICAgICBpbnNlY3VyZV9za2lwX3ZlcmlmeTogZmFsc2UKICAgICAgY2FfZmlsZTogLi4vdGxzL2NhLmNydAogICAgICBjZXJ0X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLmNydAogICAgICBrZXlfZmlsZTogLi4vdGxzL3Byb21ldGhldXMucGVtCnt7LSBlbmR9fQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6Cnt7LSByYW5nZSAuVGlEQlN0YXR1c0FkZHJzfX0KICAgICAgLSAne3sufX0nCnt7LSBlbmR9fQogIC0gam9iX25hbWU6ICJ0aWt2IgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwp7ey0gaWYgLlRMU0VuYWJsZWR9fQogICAgc2NoZW1lOiBodHRwcwogICAgdGxzX2NvbmZpZzoKICAgICAgaW5zZWN1cmVfc2tpcF92ZXJpZnk6IGZhbHNlCiAgICAgIGNhX2ZpbGU6IC4uL3Rscy9jYS5jcnQKICAgICAgY2VydF9maWxlOiAuLi90bHMvcHJvbWV0aGV1cy5jcnQKICAgICAga2V5X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLnBlbQp7ey0gZW5kfX0KICAgIHN0YXRpY19jb25maWdzOgogICAgLSB0YXJnZXRzOgp7ey0gcmFuZ2UgLlRpS1ZTdGF0dXNBZGRyc319CiAgICAgIC0gJ3t7Ln19Jwp7ey0gZW5kfX0KICAtIGpvYl9uYW1lOiAicGQiCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCnt7LSBpZiAuVExTRW5hYmxlZH19CiAgICBzY2hlbWU6IGh0dHBzCiAgICB0bHNfY29uZmlnOgogICAgICBpbnNlY3VyZV9za2lwX3ZlcmlmeTogZmFsc2UKICAgICAgY2FfZmlsZTogLi4vdGxzL2NhLmNydAogICAgICBjZXJ0X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLmNydAogICAgICBrZXlfZmlsZTogLi4vdGxzL3Byb21ldGhldXMucGVtCnt7LSBlbmR9fQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6Cnt7LSByYW5nZSAuUERBZGRyc319CiAgICAgIC0gJ3t7Ln19Jwp7ey0gZW5kfX0Ke3stIGlmIC5UaUZsYXNoU3RhdHVzQWRkcnN9fQogIC0gam9iX25hbWU6ICJ0aWZsYXNoIgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwp7ey0gaWYgLlRMU0VuYWJsZWR9fQogICAgc2NoZW1lOiBodHRwcwogICAgdGxzX2NvbmZpZzoKICAgICAgaW5zZWN1cmVfc2tpcF92ZXJpZnk6IGZhbHNlCiAgICAgIGNhX2ZpbGU6IC4uL3Rscy9jYS5jcnQKICAgICAgY2VydF9maWxlOiAuLi90bHMvcHJvbWV0aGV1cy5jcnQKICAgICAga2V5X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLnBlbQp7ey0gZW5kfX0KICAgIHN0YXRpY19jb25maWdzOgogICAgLSB0YXJnZXRzOgogICAge3stIHJhbmdlIC5UaUZsYXNoU3RhdHVzQWRkcnN9fQogICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgIHt7LSByYW5nZSAuVGlGbGFzaExlYXJuZXJTdGF0dXNBZGRyc319CiAgICAgICAtICd7ey59fScKICAgIHt7LSBlbmR9fQp7ey0gZW5kfX0Ke3stIGlmIC5QdW1wQWRkcnN9fQp7ey0gaWYgLkthZmthRXhwb3J0ZXJBZGRyfX0KICAtIGpvYl9uYW1lOiAna2Fma2FfZXhwb3J0ZXInCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCiAgICBzdGF0aWNfY29uZmlnczoKICAgIC0gdGFyZ2V0czoKICAgICAgLSAne3suS2Fma2FFeHBvcnRlckFkZHJ9fScKe3stIGVuZH19CiAgLSBqb2JfbmFtZTogJ3B1bXAnCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCnt7LSBpZiAuVExTRW5hYmxlZH19CiAgICBzY2hlbWU6IGh0dHBzCiAgICB0bHNfY29uZmlnOgogICAgICBpbnNlY3VyZV9za2lwX3ZlcmlmeTogZmFsc2UKICAgICAgY2FfZmlsZTogLi4vdGxzL2NhLmNydAogICAgICBjZXJ0X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLmNydAogICAgICBrZXlfZmlsZTogLi4vdGxzL3Byb21ldGhldXMucGVtCnt7LSBlbmR9fQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLlB1bXBBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgLSBqb2JfbmFtZTogJ2RyYWluZXInCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCnt7LSBpZiAuVExTRW5hYmxlZH19CiAgICBzY2hlbWU6IGh0dHBzCiAgICB0bHNfY29uZmlnOgogICAgICBpbnNlY3VyZV9za2lwX3ZlcmlmeTogZmFsc2UKICAgICAgY2FfZmlsZTogLi4vdGxzL2NhLmNydAogICAgICBjZXJ0X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLmNydAogICAgICBrZXlfZmlsZTogLi4vdGxzL3Byb21ldGhldXMucGVtCnt7LSBlbmR9fQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLkRyYWluZXJBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgLSBqb2JfbmFtZTogInBvcnRfcHJvYmUiCiAgICBzY3JhcGVfaW50ZXJ2YWw6IDMwcwogICAgbWV0cmljc19wYXRoOiAvcHJvYmUKICAgIHBhcmFtczoKICAgICAgbW9kdWxlOiBbdGNwX2Nvbm5lY3RdCiAgICBzdGF0aWNfY29uZmlnczoKe3stIGlmIC5LYWZrYUFkZHJzfX0KICAgIC0gdGFyZ2V0czoKICAgIHt7LSByYW5nZSAuS2Fma2FBZGRyc319CiAgICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgICAgbGFiZWxzOgogICAgICAgIGdyb3VwOiAna2Fma2EnCnt7LSBlbmR9fQp7ey0gaWYgLlpvb2tlZXBlckFkZHJzfX0KICAgIC0gdGFyZ2V0czoKICAgIHt7LSByYW5nZSAuWm9va2VlcGVyQWRkcnN9fQogICAgICAtICd7ey59fScKICAgIHt7LSBlbmR9fQogICAgICBsYWJlbHM6CiAgICAgICAgZ3JvdXA6ICd6b29rZWVwZXInCnt7LSBlbmR9fQogICAgLSB0YXJnZXRzOgp7ey0gcmFuZ2UgLlB1bXBBZGRyc319CiAgICAgIC0gJ3t7Ln19Jwp7ey0gZW5kfX0KICAgICAgbGFiZWxzOgogICAgICAgIGdyb3VwOiAncHVtcCcKICAgIC0gdGFyZ2V0czoKICAgIHt7LSByYW5nZSAuRHJhaW5lckFkZHJzfX0KICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgICAgbGFiZWxzOgogICAgICAgIGdyb3VwOiAnZHJhaW5lcicKe3stIGlmIC5LYWZrYUV4cG9ydGVyQWRkcn19CiAgICAtIHRhcmdldHM6CiAgICAgIC0gJ3t7LkthZmthRXhwb3J0ZXJBZGRyfX0nCiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ2thZmthX2V4cG9ydGVyJwp7ey0gZW5kfX0KICAgIHJlbGFiZWxfY29uZmlnczoKICAgICAgLSBzb3VyY2VfbGFiZWxzOiBbX19hZGRyZXNzX19dCiAgICAgICAgdGFyZ2V0X2xhYmVsOiBfX3BhcmFtX3RhcmdldAogICAgICAtIHNvdXJjZV9sYWJlbHM6IFtfX3BhcmFtX3RhcmdldF0KICAgICAgICB0YXJnZXRfbGFiZWw6IGluc3RhbmNlCiAgICAgIC0gdGFyZ2V0X2xhYmVsOiBfX2FkZHJlc3NfXwogICAgICAgIHJlcGxhY2VtZW50OiB7ey5CbGFja2JveEFkZHJ9fQp7ey0gZW5kfX0Ke3stIGlmIC5DRENBZGRyc319CiAgLSBqb2JfbmFtZTogInRpY2RjIgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwp7ey0gaWYgLlRMU0VuYWJsZWR9fQogICAgc2NoZW1lOiBodHRwcwogICAgdGxzX2NvbmZpZzoKICAgICAgaW5zZWN1cmVfc2tpcF92ZXJpZnk6IGZhbHNlCiAgICAgIGNhX2ZpbGU6IC4uL3Rscy9jYS5jcnQKICAgICAgY2VydF9maWxlOiAuLi90bHMvcHJvbWV0aGV1cy5jcnQKICAgICAga2V5X2ZpbGU6IC4uL3Rscy9wcm9tZXRoZXVzLnBlbQp7ey0gZW5kfX0KICAgIHN0YXRpY19jb25maWdzOgogICAgLSB0YXJnZXRzOgp7ey0gcmFuZ2UgLkNEQ0FkZHJzfX0KICAgICAgLSAne3sufX0nCnt7LSBlbmR9fQp7ey0gZW5kfX0KICAtIGpvYl9uYW1lOiAidGlkYl9wb3J0X3Byb2JlIgogICAgc2NyYXBlX2ludGVydmFsOiAzMHMKICAgIG1ldHJpY3NfcGF0aDogL3Byb2JlCiAgICBwYXJhbXM6CiAgICAgIG1vZHVsZTogW3RjcF9jb25uZWN0XQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLlRpREJTdGF0dXNBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ3RpZGInCiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLlRpS1ZTdGF0dXNBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ3Rpa3YnCiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLlBEQWRkcnN9fQogICAgICAtICd7ey59fScKICAgIHt7LSBlbmR9fQogICAgICBsYWJlbHM6CiAgICAgICAgZ3JvdXA6ICdwZCcKe3stIGlmIC5UaUZsYXNoU3RhdHVzQWRkcnN9fQogICAgLSB0YXJnZXRzOgogICAge3stIHJhbmdlIC5UaUZsYXNoU3RhdHVzQWRkcnN9fQogICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgICAgbGFiZWxzOgogICAgICAgIGdyb3VwOiAndGlmbGFzaCcKe3stIGVuZH19Cnt7LSBpZiAuUHVzaGdhdGV3YXlBZGRyfX0KICAgIC0gdGFyZ2V0czoKICAgICAgLSAne3suUHVzaGdhdGV3YXlBZGRyfX0nCiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ3B1c2hnYXRld2F5Jwp7ey0gZW5kfX0Ke3stIGlmIC5HcmFmYW5hQWRkcn19CiAgICAtIHRhcmdldHM6CiAgICAgIC0gJ3t7LkdyYWZhbmFBZGRyfX0nCiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ2dyYWZhbmEnCnt7LSBlbmR9fQogICAgLSB0YXJnZXRzOgogICAge3stIHJhbmdlIC5Ob2RlRXhwb3J0ZXJBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ25vZGVfZXhwb3J0ZXInCiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLkJsYWNrYm94RXhwb3J0ZXJBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19CiAgICAgIGxhYmVsczoKICAgICAgICBncm91cDogJ2JsYWNrYm94X2V4cG9ydGVyJwogICAgcmVsYWJlbF9jb25maWdzOgogICAgICAtIHNvdXJjZV9sYWJlbHM6IFtfX2FkZHJlc3NfX10KICAgICAgICB0YXJnZXRfbGFiZWw6IF9fcGFyYW1fdGFyZ2V0CiAgICAgIC0gc291cmNlX2xhYmVsczogW19fcGFyYW1fdGFyZ2V0XQogICAgICAgIHRhcmdldF9sYWJlbDogaW5zdGFuY2UKICAgICAgLSB0YXJnZXRfbGFiZWw6IF9fYWRkcmVzc19fCiAgICAgICAgcmVwbGFjZW1lbnQ6IHt7LkJsYWNrYm94QWRkcn19Cnt7LSByYW5nZSAkYWRkciA6PSAuQmxhY2tib3hFeHBvcnRlckFkZHJzfX0KICAtIGpvYl9uYW1lOiAiYmxhY2tib3hfZXhwb3J0ZXJfe3skYWRkcn19X2ljbXAiCiAgICBzY3JhcGVfaW50ZXJ2YWw6IDZzCiAgICBtZXRyaWNzX3BhdGg6IC9wcm9iZQogICAgcGFyYW1zOgogICAgICBtb2R1bGU6IFtpY21wXQogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgJC5Nb25pdG9yZWRTZXJ2ZXJzfX0KICAgICAgLSAne3sufX0nCiAgICB7ey0gZW5kfX0KICAgIHJlbGFiZWxfY29uZmlnczoKICAgICAgLSBzb3VyY2VfbGFiZWxzOiBbX19hZGRyZXNzX19dCiAgICAgICAgcmVnZXg6ICguKikoOjgwKT8KICAgICAgICB0YXJnZXRfbGFiZWw6IF9fcGFyYW1fdGFyZ2V0CiAgICAgICAgcmVwbGFjZW1lbnQ6ICR7MX0KICAgICAgLSBzb3VyY2VfbGFiZWxzOiBbX19wYXJhbV90YXJnZXRdCiAgICAgICAgcmVnZXg6ICguKikKICAgICAgICB0YXJnZXRfbGFiZWw6IHBpbmcKICAgICAgICByZXBsYWNlbWVudDogJHsxfQogICAgICAtIHNvdXJjZV9sYWJlbHM6IFtdCiAgICAgICAgcmVnZXg6IC4qCiAgICAgICAgdGFyZ2V0X2xhYmVsOiBfX2FkZHJlc3NfXwogICAgICAgIHJlcGxhY2VtZW50OiB7eyRhZGRyfX0Ke3stIGVuZH19Cgp7ey0gaWYgLkRNTWFzdGVyQWRkcnN9fQogIC0gam9iX25hbWU6ICJkbV9tYXN0ZXIiCiAgICBob25vcl9sYWJlbHM6IHRydWUgIyBkb24ndCBvdmVyd3JpdGUgam9iICYgaW5zdGFuY2UgbGFiZWxzCiAgICBzdGF0aWNfY29uZmlnczoKICAgIC0gdGFyZ2V0czoKICAgIHt7LSByYW5nZSAuRE1NYXN0ZXJBZGRyc319CiAgICAgIC0gJ3t7Ln19JwogICAge3stIGVuZH19Cnt7LSBlbmR9fQoKe3stIGlmIC5ETVdvcmtlckFkZHJzfX0KICAtIGpvYl9uYW1lOiAiZG1fd29ya2VyIgogICAgaG9ub3JfbGFiZWxzOiB0cnVlICMgZG9uJ3Qgb3ZlcndyaXRlIGpvYiAmIGluc3RhbmNlIGxhYmVscwogICAgc3RhdGljX2NvbmZpZ3M6CiAgICAtIHRhcmdldHM6CiAgICB7ey0gcmFuZ2UgLkRNV29ya2VyQWRkcnN9fQogICAgICAtICd7ey59fScKICAgIHt7LSBlbmR9fQp7ey0gZW5kfX0KCnt7LSBpZiAuUmVtb3RlQ29uZmlnfX0Ke3suUmVtb3RlQ29uZmlnfX0Ke3stIGVuZH19" autogenFiles["/templates/config/spark-defaults.conf.tpl"] = "IwojIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQojIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUgZGlzdHJpYnV0ZWQgd2l0aAojIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4KIyBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZSB0byBZb3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMAojICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoCiMgdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKIwojICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAojCiMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQojIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAojIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgojCgojIERlZmF1bHQgc3lzdGVtIHByb3BlcnRpZXMgaW5jbHVkZWQgd2hlbiBydW5uaW5nIHNwYXJrLXN1Ym1pdC4KIyBUaGlzIGlzIHVzZWZ1bCBmb3Igc2V0dGluZyBkZWZhdWx0IGVudmlyb25tZW50YWwgc2V0dGluZ3MuCgojIEV4YW1wbGU6CiNzcGFyay5ldmVudExvZy5kaXI6ICJoZGZzOi8vbmFtZW5vZGU6ODAyMS9kaXJlY3RvcnkiCiMgc3BhcmsuZXhlY3V0b3IuZXh0cmFKYXZhT3B0aW9ucyAgLVhYOitQcmludEdDRGV0YWlscyAtRGtleT12YWx1ZSAtRG51bWJlcnM9Im9uZSB0d28gdGhyZWUiCgp7ey0gZGVmaW5lICJQRExpc3QifX0KICB7ey0gcmFuZ2UgJGlkeCwgJHBkIDo9IC59fQogICAge3stIGlmIGVxICRpZHggMH19CiAgICAgIHt7LSAkcGR9fQogICAge3stIGVsc2UgLX19CiAgICAgICx7eyRwZH19CiAgICB7ey0gZW5kfX0KICB7ey0gZW5kfX0Ke3stIGVuZH19Cgp7eyByYW5nZSAkaywgJHYgOj0gLkN1c3RvbUZpZWxkc319Cnt7ICRrIH19ICAge3sgJHYgfX0Ke3stIGVuZCB9fQpzcGFyay5zcWwuZXh0ZW5zaW9ucyAgIG9yZy5hcGFjaGUuc3Bhcmsuc3FsLlRpRXh0ZW5zaW9ucwoKe3stIGlmIC5UaVNwYXJrTWFzdGVyc319CnNwYXJrLm1hc3RlciAgIHNwYXJrOi8ve3suVGlTcGFya01hc3RlcnN9fQp7ey0gZW5kfX0KCnNwYXJrLnRpc3BhcmsucGQuYWRkcmVzc2VzIHt7dGVtcGxhdGUgIlBETGlzdCIgLkVuZHBvaW50c319Cg==" autogenFiles["/templates/config/spark-log4j.properties.tpl"] = "IwojIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUgb3IgbW9yZQojIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUgZGlzdHJpYnV0ZWQgd2l0aAojIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4KIyBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZSB0byBZb3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMAojICh0aGUgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoCiMgdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKIwojICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAojCiMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQojIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAojIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgojCgojIFNldCBldmVyeXRoaW5nIHRvIGJlIGxvZ2dlZCB0byB0aGUgY29uc29sZQpsb2c0ai5yb290Q2F0ZWdvcnk9SU5GTywgY29uc29sZQpsb2c0ai5hcHBlbmRlci5jb25zb2xlPW9yZy5hcGFjaGUubG9nNGouQ29uc29sZUFwcGVuZGVyCmxvZzRqLmFwcGVuZGVyLmNvbnNvbGUudGFyZ2V0PVN5c3RlbS5lcnIKbG9nNGouYXBwZW5kZXIuY29uc29sZS5sYXlvdXQ9b3JnLmFwYWNoZS5sb2c0ai5QYXR0ZXJuTGF5b3V0CmxvZzRqLmFwcGVuZGVyLmNvbnNvbGUubGF5b3V0LkNvbnZlcnNpb25QYXR0ZXJuPSVke3l5L01NL2RkIEhIOm1tOnNzfSAlcCAlY3sxfTogJW0lbgoKIyBTZXQgdGhlIGRlZmF1bHQgc3Bhcmstc2hlbGwgbG9nIGxldmVsIHRvIFdBUk4uIFdoZW4gcnVubmluZyB0aGUgc3Bhcmstc2hlbGwsIHRoZQojIGxvZyBsZXZlbCBmb3IgdGhpcyBjbGFzcyBpcyB1c2VkIHRvIG92ZXJ3cml0ZSB0aGUgcm9vdCBsb2dnZXIncyBsb2cgbGV2ZWwsIHNvIHRoYXQKIyB0aGUgdXNlciBjYW4gaGF2ZSBkaWZmZXJlbnQgZGVmYXVsdHMgZm9yIHRoZSBzaGVsbCBhbmQgcmVndWxhciBTcGFyayBhcHBzLgpsb2c0ai5sb2dnZXIub3JnLmFwYWNoZS5zcGFyay5yZXBsLk1haW49V0FSTgoKIyBTZXR0aW5ncyB0byBxdWlldCB0aGlyZCBwYXJ0eSBsb2dzIHRoYXQgYXJlIHRvbyB2ZXJib3NlCmxvZzRqLmxvZ2dlci5vcmcuc3BhcmtfcHJvamVjdC5qZXR0eT1XQVJOCmxvZzRqLmxvZ2dlci5vcmcuc3BhcmtfcHJvamVjdC5qZXR0eS51dGlsLmNvbXBvbmVudC5BYnN0cmFjdExpZmVDeWNsZT1FUlJPUgpsb2c0ai5sb2dnZXIub3JnLmFwYWNoZS5zcGFyay5yZXBsLlNwYXJrSU1haW4kZXhwclR5cGVyPUlORk8KbG9nNGoubG9nZ2VyLm9yZy5hcGFjaGUuc3BhcmsucmVwbC5TcGFya0lMb29wJFNwYXJrSUxvb3BJbnRlcnByZXRlcj1JTkZPCmxvZzRqLmxvZ2dlci5vcmcuYXBhY2hlLnBhcnF1ZXQ9RVJST1IKbG9nNGoubG9nZ2VyLnBhcnF1ZXQ9RVJST1IKCiMgU1BBUkstOTE4MzogU2V0dGluZ3MgdG8gYXZvaWQgYW5ub3lpbmcgbWVzc2FnZXMgd2hlbiBsb29raW5nIHVwIG5vbmV4aXN0ZW50IFVERnMgaW4gU3BhcmtTUUwgd2l0aCBIaXZlIHN1cHBvcnQKbG9nNGoubG9nZ2VyLm9yZy5hcGFjaGUuaGFkb29wLmhpdmUubWV0YXN0b3JlLlJldHJ5aW5nSE1TSGFuZGxlcj1GQVRBTApsb2c0ai5sb2dnZXIub3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5leGVjLkZ1bmN0aW9uUmVnaXN0cnk9RVJST1IKCiMgdGlzcGFyayBkaXNhYmxlICJXQVJOIE9iamVjdFN0b3JlOjU2OCAtIEZhaWxlZCB0byBnZXQgZGF0YWJhc2UiCmxvZzRqLmxvZ2dlci5vcmcuYXBhY2hlLmhhZG9vcC5oaXZlLm1ldGFzdG9yZS5PYmplY3RTdG9yZT1FUlJPUgo=" autogenFiles["/templates/scripts/run_alertmanager.sh.tpl"] = "IyEvYmluL2Jhc2gKc2V0IC1lCgpERVBMT1lfRElSPXt7LkRlcGxveURpcn19CmNkICIke0RFUExPWV9ESVJ9IiB8fCBleGl0IDEKCiMgV0FSTklORzogVGhpcyBmaWxlIHdhcyBhdXRvLWdlbmVyYXRlZC4gRG8gbm90IGVkaXQhCiMgICAgICAgICAgQWxsIHlvdXIgZWRpdCBtaWdodCBiZSBvdmVyd3JpdHRlbiEKCmV4ZWMgPiA+KHRlZSAtaSAtYSAie3suTG9nRGlyfX0vYWxlcnRtYW5hZ2VyLmxvZyIpCmV4ZWMgMj4mMQoKe3stIGlmIC5OdW1hTm9kZX19CmV4ZWMgbnVtYWN0bCAtLWNwdW5vZGViaW5kPXt7Lk51bWFOb2RlfX0gLS1tZW1iaW5kPXt7Lk51bWFOb2RlfX0gYmluL2FsZXJ0bWFuYWdlciBcCnt7LSBlbHNlfX0KZXhlYyBiaW4vYWxlcnRtYW5hZ2VyL2FsZXJ0bWFuYWdlciBcCnt7LSBlbmR9fQogICAgLS1jb25maWcuZmlsZT0iY29uZi9hbGVydG1hbmFnZXIueW1sIiBcCiAgICAtLXN0b3JhZ2UucGF0aD0ie3suRGF0YURpcn19IiBcCiAgICAtLWRhdGEucmV0ZW50aW9uPTEyMGggXAogICAgLS1sb2cubGV2ZWw9ImluZm8iIFwKICAgIC0td2ViLmxpc3Rlbi1hZGRyZXNzPSJ7ey5JUH19Ont7LldlYlBvcnR9fSIgXAp7ey0gaWYgLkVuZFBvaW50c319Cnt7LSByYW5nZSAkaWR4LCAkYW0gOj0gLkVuZFBvaW50c319CiAgICAtLWNsdXN0ZXIucGVlcj0ie3skYW0uSVB9fTp7eyRhbS5DbHVzdGVyUG9ydH19IiBcCnt7LSBlbmR9fQp7ey0gZW5kfX0KICAgIC0tY2x1c3Rlci5saXN0ZW4tYWRkcmVzcz0ie3suSVB9fTp7ey5DbHVzdGVyUG9ydH19Igo=" diff --git a/pkg/cluster/spec/prometheus.go b/pkg/cluster/spec/prometheus.go index 2196201fb1..8bd9a859e1 100644 --- a/pkg/cluster/spec/prometheus.go +++ b/pkg/cluster/spec/prometheus.go @@ -40,6 +40,7 @@ type PrometheusSpec struct { DataDir string `yaml:"data_dir,omitempty"` LogDir string `yaml:"log_dir,omitempty"` NumaNode string `yaml:"numa_node,omitempty" validate:"numa_node:editable"` + RemoteConfig Remote `yaml:"remote_config,omitempty" validate:"remote_config:ignore"` Retention string `yaml:"storage_retention,omitempty" validate:"storage_retention:editable"` ResourceControl meta.ResourceControl `yaml:"resource_control,omitempty" validate:"resource_control:editable"` Arch string `yaml:"arch,omitempty"` @@ -47,6 +48,12 @@ type PrometheusSpec struct { RuleDir string `yaml:"rule_dir,omitempty" validate:"rule_dir:editable"` } +// Remote prometheus remote config +type Remote struct { + RemoteWrite []map[string]interface{} `yaml:"remote_write,omitempty" validate:"remote_write:ignore"` + RemoteRead []map[string]interface{} `yaml:"remote_read,omitempty" validate:"remote_read:ignore"` +} + // Role returns the component role of the instance func (s PrometheusSpec) Role() string { return ComponentPrometheus @@ -245,6 +252,7 @@ func (i *MonitorInstance) InitConfig( cfig.AddDMWorker(host, uint64(port)) } } + if monitoredOptions != nil { for host := range uniqueHosts { cfig.AddNodeExpoertor(host, uint64(monitoredOptions.NodeExporterPort)) @@ -253,6 +261,12 @@ func (i *MonitorInstance) InitConfig( } } + remoteCfg, err := encodeRemoteCfg2Yaml(spec.RemoteConfig) + if err != nil { + return err + } + cfig.SetRemoteConfig(string(remoteCfg)) + if spec.RuleDir != "" { filter := func(name string) bool { return strings.HasSuffix(name, ".rules.yml") } err := i.IteratorLocalConfigDir(ctx, spec.RuleDir, filter, func(name string) error { diff --git a/pkg/cluster/spec/server_config.go b/pkg/cluster/spec/server_config.go index c59bbccb77..4e97fea761 100644 --- a/pkg/cluster/spec/server_config.go +++ b/pkg/cluster/spec/server_config.go @@ -30,6 +30,7 @@ import ( "github.com/pingcap/tiup/pkg/logger/log" "github.com/pingcap/tiup/pkg/meta" "github.com/pingcap/tiup/pkg/utils" + "gopkg.in/yaml.v2" ) const ( @@ -218,6 +219,20 @@ func merge2Toml(comp string, global, overwrite map[string]interface{}) ([]byte, return buf.Bytes(), nil } +func encodeRemoteCfg2Yaml(remote Remote) ([]byte, error) { + if len(remote.RemoteRead) == 0 && len(remote.RemoteWrite) == 0 { + return []byte{}, nil + } + + buf := bytes.NewBufferString("") + enc := yaml.NewEncoder(buf) + err := enc.Encode(remote) + if err != nil { + return nil, err + } + return buf.Bytes(), nil +} + func mergeImported(importConfig []byte, specConfigs ...map[string]interface{}) (map[string]interface{}, error) { var configData map[string]interface{} if err := toml.Unmarshal(importConfig, &configData); err != nil { diff --git a/pkg/cluster/spec/server_config_test.go b/pkg/cluster/spec/server_config_test.go index a6dbd5613b..b341fd3b5b 100644 --- a/pkg/cluster/spec/server_config_test.go +++ b/pkg/cluster/spec/server_config_test.go @@ -130,3 +130,42 @@ func (s *configSuite) TestFoldMap(c *check.C) { }, }) } + +func (s *configSuite) TestEncodeRemoteCfg(c *check.C) { + yamlData := []byte(`remote_write: +- queue_config: + batch_send_deadline: 5m + capacity: 100000 + max_samples_per_send: 10000 + max_shards: 300 + url: http://127.0.0.1:/8086/write +remote_read: +- url: http://127.0.0.1:/8086/read +- url: http://127.0.0.1:/8087/read +`) + + bs, err := encodeRemoteCfg2Yaml(Remote{ + RemoteWrite: []map[string]interface{}{ + { + "url": "http://127.0.0.1:/8086/write", + "queue_config": map[string]interface{}{ + "batch_send_deadline": "5m", + "capacity": 100000, + "max_samples_per_send": 10000, + "max_shards": 300, + }, + }, + }, + RemoteRead: []map[string]interface{}{ + { + "url": "http://127.0.0.1:/8086/read", + }, + { + "url": "http://127.0.0.1:/8087/read", + }, + }, + }) + + c.Assert(err, check.IsNil) + c.Assert(bs, check.BytesEquals, yamlData) +} diff --git a/pkg/cluster/template/config/prometheus.go b/pkg/cluster/template/config/prometheus.go index fdefaede0c..fb1d26acc8 100644 --- a/pkg/cluster/template/config/prometheus.go +++ b/pkg/cluster/template/config/prometheus.go @@ -50,7 +50,8 @@ type PrometheusConfig struct { DMMasterAddrs []string DMWorkerAddrs []string - LocalRules []string + LocalRules []string + RemoteConfig string } // NewPrometheusConfig returns a PrometheusConfig @@ -193,6 +194,12 @@ func (c *PrometheusConfig) AddLocalRule(rule string) *PrometheusConfig { return c } +// SetRemoteConfig set remote read/write config +func (c *PrometheusConfig) SetRemoteConfig(cfg string) *PrometheusConfig { + c.RemoteConfig = cfg + return c +} + // Config generate the config file data. func (c *PrometheusConfig) Config() ([]byte, error) { fp := path.Join("/templates", "config", "prometheus.yml.tpl") diff --git a/pkg/repository/mirror.go b/pkg/repository/mirror.go index 6ab711617c..4c598ef0f9 100644 --- a/pkg/repository/mirror.go +++ b/pkg/repository/mirror.go @@ -493,6 +493,9 @@ func (l *httpMirror) Download(resource, targetDir string) error { return nil } return r.Close() + }, utils.RetryOption{ + Timeout: time.Hour, + Attempts: 3, }) if err != nil { return err diff --git a/templates/config/prometheus.yml.tpl b/templates/config/prometheus.yml.tpl index ae1218ed4e..49e4e08caf 100644 --- a/templates/config/prometheus.yml.tpl +++ b/templates/config/prometheus.yml.tpl @@ -382,3 +382,7 @@ scrape_configs: - '{{.}}' {{- end}} {{- end}} + +{{- if .RemoteConfig}} +{{.RemoteConfig}} +{{- end}} \ No newline at end of file