Ejemplo n.º 1
0
  @Override
  public void initializePlugin(Metric2Registry metricRegistry, Configuration configuration) {
    final Integer reloadInterval = getReloadConfigurationInterval();
    if (reloadInterval > 0) {
      configuration.scheduleReloadAtRate(reloadInterval, TimeUnit.SECONDS);
    }

    metricRegistry.register(
        MetricName.name("online").build(),
        new Gauge<Integer>() {
          @Override
          public Integer getValue() {
            return 1;
          }
        });

    ElasticsearchClient elasticsearchClient = getElasticsearchClient();
    if (isReportToGraphite()) {
      elasticsearchClient.sendGrafana1DashboardAsync("Grafana1GraphiteCustomMetrics.json");
    }
    elasticsearchClient.createIndex(
        "stagemonitor", IOUtils.getResourceAsStream("stagemonitor-elasticsearch-mapping.json"));
    if (isReportToElasticsearch()) {
      final GrafanaClient grafanaClient = getGrafanaClient();
      grafanaClient.createElasticsearchDatasource(getElasticsearchUrl());
    }
    registerReporters(metricRegistry, configuration);
  }
Ejemplo n.º 2
0
 @Override
 public void initializePlugin(Metric2Registry registry, Configuration config) {
   registerPooledResources(registry, tomcatThreadPools());
   final CorePlugin corePlugin = config.getConfig(CorePlugin.class);
   ElasticsearchClient elasticsearchClient = corePlugin.getElasticsearchClient();
   if (corePlugin.isReportToGraphite()) {
     elasticsearchClient.sendGrafana1DashboardAsync("grafana/Grafana1GraphiteServer.json");
     elasticsearchClient.sendGrafana1DashboardAsync("grafana/Grafana1GraphiteKPIsOverTime.json");
   }
   if (corePlugin.isReportToElasticsearch()) {
     final GrafanaClient grafanaClient = corePlugin.getGrafanaClient();
     elasticsearchClient.sendBulkAsync("kibana/ApplicationServer.bulk");
     grafanaClient.sendGrafanaDashboardAsync("grafana/ElasticsearchApplicationServer.json");
   }
 }
Ejemplo n.º 3
0
  private void reportToElasticsearch(
      Metric2Registry metricRegistry,
      int reportingInterval,
      final MeasurementSession measurementSession,
      CorePlugin corePlugin) {
    if (isReportToElasticsearch()) {
      elasticsearchClient.sendBulkAsync("KibanaConfig.bulk");
      logger.info(
          "Sending metrics to Elasticsearch ({}) every {}s",
          getElasticsearchUrl(),
          reportingInterval);
      final String mappingJson =
          ElasticsearchClient.requireBoxTypeHotIfHotColdAritectureActive(
              "stagemonitor-elasticsearch-metrics-index-template.json",
              corePlugin.moveToColdNodesAfterDays.getValue());
      elasticsearchClient.sendMappingTemplateAsync(mappingJson, "stagemonitor-metrics");
      final ElasticsearchReporter reporter =
          new ElasticsearchReporter(
              metricRegistry,
              Metric2Filter.ALL,
              TimeUnit.SECONDS,
              TimeUnit.MILLISECONDS,
              measurementSession.asMap(),
              new HttpClient(),
              this);

      reporter.start(reportingInterval, TimeUnit.SECONDS);
      reporters.add(reporter);
      elasticsearchClient.scheduleIndexManagement(
          ElasticsearchReporter.STAGEMONITOR_METRICS_INDEX_PREFIX,
          moveToColdNodesAfterDays.getValue(),
          deleteElasticsearchMetricsAfterDays.getValue());
    } else {
      logger.info(
          "Not sending metrics to Elasticsearch (url={}, interval={}s)",
          getElasticsearchUrl(),
          reportingInterval);
    }
  }
Ejemplo n.º 4
0
 @Override
 public void initializePlugin(MetricRegistry metricRegistry, Configuration config) {
   ElasticsearchClient elasticsearchClient =
       config.getConfig(CorePlugin.class).getElasticsearchClient();
   elasticsearchClient.sendGrafanaDashboardAsync("DB Queries.json");
 }