class KsqlEngineMetrics implements Closeable {

  public void registerQuery(final QueryMetadata query) {
    final String metricsPrefix = metricGroupPrefix.equals(DEFAULT_METRIC_GROUP_PREFIX)
        ? ""
        : metricGroupPrefix;

    final QueryStateListener listener = new QueryStateListener(
        metrics,
        metricsPrefix,
        query.getQueryApplicationId()
    );

    query.setQueryStateListener(listener);
  }

  public  KsqlEngineMetrics(
      final String metricGroupPrefix,
      final KsqlEngine ksqlEngine,
      final Map<String, String> customMetricsTags,
      final Optional<KsqlMetricsExtension> metricsExtension
  );
    KsqlEngineMetrics(
      final String metricGroupPrefix,
      final KsqlEngine ksqlEngine,
      final Metrics metrics,
      final Map<String, String> customMetricsTags,
      final Optional<KsqlMetricsExtension> metricsExtension
  );

}