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:
Ravindranath Kakarla 2021-09-30 05:05:44 -07:00 committed by GitHub
parent e73a8a9f3a
commit c5ce30f6f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 49 additions and 2 deletions

View file

@ -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>

View file

@ -0,0 +1,5 @@
package software.amazon.kinesis.common;
public final class KinesisClientLibraryPackage {
public static final String VERSION = "${project.version}";
}

View file

@ -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);
} }
/** /**