Refactor: move telemetry config from componentCfg to configs.xml
1. Support to export the metrics to multiple targets
2. Add a set of properties to kafka config (key, topic, etc.)
3. Add distributedStore to manage telemetry configs
4. Add CLI to query stored telemetry configs
5. Add a set of telemetry loaders to import xml definitions
6. Add unit tests for telemetry cfg, xml cfg loader and dist store
7. Add missing javadoc for a set of implementation classes
Change-Id: I39480c9a6ac07357184d2e1094b9c9f4d36fd8b1
diff --git a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/config/DefaultRestTelemetryConfig.java b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/config/DefaultRestTelemetryConfig.java
index df9d6ce..a5977a5 100644
--- a/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/config/DefaultRestTelemetryConfig.java
+++ b/apps/openstacktelemetry/app/src/main/java/org/onosproject/openstacktelemetry/config/DefaultRestTelemetryConfig.java
@@ -19,18 +19,28 @@
import com.google.common.collect.Maps;
import org.onosproject.openstacktelemetry.api.config.RestTelemetryConfig;
import org.onosproject.openstacktelemetry.api.config.TelemetryConfig;
+import org.onosproject.openstacktelemetry.api.config.TelemetryConfigProperties;
import java.util.Map;
import java.util.Objects;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onosproject.openstacktelemetry.api.config.TelemetryConfig.ConfigType.REST;
/**
* A configuration file contains REST telemetry parameters.
*/
public final class DefaultRestTelemetryConfig implements RestTelemetryConfig {
+ protected static final String ADDRESS = "address";
+ protected static final String PORT = "port";
+ protected static final String ENDPOINT = "endpoint";
+ protected static final String METHOD = "method";
+ protected static final String REQUEST_MEDIA_TYPE = "requestMediaType";
+ protected static final String RESPONSE_MEDIA_TYPE = "responseMediaType";
+ protected static final String CONFIG_MAP = "configMap";
+
private final String address;
private final int port;
private final String endpoint;
@@ -119,22 +129,43 @@
@Override
public String toString() {
return toStringHelper(this)
- .add("address", address)
- .add("port", port)
- .add("endpoint", endpoint)
- .add("method", method)
- .add("requestMediaType", requestMediaType)
- .add("responseMediaType", responseMediaType)
- .add("configMap", configMap)
+ .add(ADDRESS, address)
+ .add(PORT, port)
+ .add(ENDPOINT, endpoint)
+ .add(METHOD, method)
+ .add(REQUEST_MEDIA_TYPE, requestMediaType)
+ .add(RESPONSE_MEDIA_TYPE, responseMediaType)
+ .add(CONFIG_MAP, configMap)
.toString();
}
@Override
- public TelemetryConfig.Builder createBuilder() {
+ public TelemetryConfigProperties.Builder createBuilder() {
return new DefaultBuilder();
}
/**
+ * Builds a REST telemetry config from telemetry config instance.
+ *
+ * @param config telemetry config
+ * @return REST telemetry config
+ */
+ public static RestTelemetryConfig fromTelemetryConfig(TelemetryConfig config) {
+ if (config.type() != REST) {
+ return null;
+ }
+
+ return new DefaultBuilder()
+ .withAddress(config.getProperty(ADDRESS))
+ .withPort(Integer.valueOf(config.getProperty(PORT)))
+ .withEndpoint(config.getProperty(ENDPOINT))
+ .withMethod(config.getProperty(METHOD))
+ .withRequestMediaType(config.getProperty(REQUEST_MEDIA_TYPE))
+ .withResponseMediaType(config.getProperty(RESPONSE_MEDIA_TYPE))
+ .build();
+ }
+
+ /**
* Builder class of DefaultRestTelemetryConfig.
*/
public static final class DefaultBuilder implements Builder {
@@ -198,4 +229,4 @@
method, requestMediaType, responseMediaType, configMap);
}
}
-}
+}
\ No newline at end of file