Emit Glue Schema Registry usage metrics (#855)
* Emit Glue Schema Registry usage metrics * Append KCL version to the app string. Co-authored-by: Ravindranath Kakarla <rnath@amazon.com>
This commit is contained in:
parent
e73a8a9f3a
commit
c5ce30f6f7
3 changed files with 49 additions and 2 deletions
|
|
@ -77,12 +77,12 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>software.amazon.glue</groupId>
|
<groupId>software.amazon.glue</groupId>
|
||||||
<artifactId>schema-registry-serde</artifactId>
|
<artifactId>schema-registry-serde</artifactId>
|
||||||
<version>1.1.1</version>
|
<version>1.1.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>software.amazon.glue</groupId>
|
<groupId>software.amazon.glue</groupId>
|
||||||
<artifactId>schema-registry-common</artifactId>
|
<artifactId>schema-registry-common</artifactId>
|
||||||
<version>1.1.1</version>
|
<version>1.1.4</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.google.guava</groupId>
|
<groupId>com.google.guava</groupId>
|
||||||
|
|
@ -324,6 +324,45 @@
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
<!-- Required for generating maven version as a Java class for runtime access -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>templating-maven-plugin</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>generate-version-class</id>
|
||||||
|
<goals>
|
||||||
|
<goal>filter-sources</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-dist</id>
|
||||||
|
<phase>prepare-package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>${project.basedir}/target/generated-sources/java-templates/</directory>
|
||||||
|
<filtering>false</filtering>
|
||||||
|
<excludes>
|
||||||
|
</excludes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|
||||||
</build>
|
</build>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
package software.amazon.kinesis.common;
|
||||||
|
|
||||||
|
public final class KinesisClientLibraryPackage {
|
||||||
|
public static final String VERSION = "${project.version}";
|
||||||
|
}
|
||||||
|
|
@ -3,6 +3,7 @@ package software.amazon.kinesis.schemaregistry;
|
||||||
import com.amazonaws.services.schemaregistry.common.Schema;
|
import com.amazonaws.services.schemaregistry.common.Schema;
|
||||||
import com.amazonaws.services.schemaregistry.deserializers.GlueSchemaRegistryDeserializer;
|
import com.amazonaws.services.schemaregistry.deserializers.GlueSchemaRegistryDeserializer;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import software.amazon.kinesis.common.KinesisClientLibraryPackage;
|
||||||
import software.amazon.kinesis.retrieval.KinesisClientRecord;
|
import software.amazon.kinesis.retrieval.KinesisClientRecord;
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
@ -14,11 +15,13 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class SchemaRegistryDecoder {
|
public class SchemaRegistryDecoder {
|
||||||
|
private static final String USER_AGENT_APP_NAME = "kcl" + "-" + KinesisClientLibraryPackage.VERSION;
|
||||||
private final GlueSchemaRegistryDeserializer glueSchemaRegistryDeserializer;
|
private final GlueSchemaRegistryDeserializer glueSchemaRegistryDeserializer;
|
||||||
|
|
||||||
public SchemaRegistryDecoder(
|
public SchemaRegistryDecoder(
|
||||||
GlueSchemaRegistryDeserializer glueSchemaRegistryDeserializer) {
|
GlueSchemaRegistryDeserializer glueSchemaRegistryDeserializer) {
|
||||||
this.glueSchemaRegistryDeserializer = glueSchemaRegistryDeserializer;
|
this.glueSchemaRegistryDeserializer = glueSchemaRegistryDeserializer;
|
||||||
|
this.glueSchemaRegistryDeserializer.overrideUserAgentApp(USER_AGENT_APP_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue