Skip to content

Commit

Permalink
WFLY-10866 - Proper description of Agroal attributes 'statistics' and…
Browse files Browse the repository at this point in the history
… 'class-info'
  • Loading branch information
barreiro committed Aug 23, 2018
1 parent ff97243 commit fe842c1
Show file tree
Hide file tree
Showing 4 changed files with 134 additions and 26 deletions.
Expand Up @@ -39,7 +39,6 @@
import org.jboss.as.controller.OperationFailedException; import org.jboss.as.controller.OperationFailedException;
import org.jboss.as.controller.OperationStepHandler; import org.jboss.as.controller.OperationStepHandler;
import org.jboss.as.controller.PersistentResourceDefinition; import org.jboss.as.controller.PersistentResourceDefinition;
import org.jboss.as.controller.PrimitiveListAttributeDefinition;
import org.jboss.as.controller.PropertiesAttributeDefinition; import org.jboss.as.controller.PropertiesAttributeDefinition;
import org.jboss.as.controller.ReloadRequiredWriteAttributeHandler; import org.jboss.as.controller.ReloadRequiredWriteAttributeHandler;
import org.jboss.as.controller.SimpleAttributeDefinition; import org.jboss.as.controller.SimpleAttributeDefinition;
Expand Down Expand Up @@ -241,7 +240,81 @@ public void validateParameter(String parameterName, ModelNode value) throws Oper


// --- Runtime attributes // // --- Runtime attributes //


private static final PrimitiveListAttributeDefinition STATISTICS = PrimitiveListAttributeDefinition.Builder.of("statistics", ModelType.LIST) static final SimpleAttributeDefinition STATISTICS_ACQUIRE_COUNT_ATTRIBUTE = create("acquire-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_ACTIVE_COUNT_ATTRIBUTE = create("active-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_AVAILABLE_COUNT_ATTRIBUTE = create("available-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_AWAITING_COUNT_ATTRIBUTE = create("awaiting-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_CREATION_COUNT_ATTRIBUTE = create("creation-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_DESTOY_COUNT_ATTRIBUTE = create("destroy-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_FLUSH_COUNT_ATTRIBUTE = create("flush-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_INVALID_COUNT_ATTRIBUTE = create("invalid-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_LEAK_DETECTION_COUNT_ATTRIBUTE = create("leak-detection-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_MAX_USED_COUNT_ATTRIBUTE = create("max-used-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_REAP_COUNT_ATTRIBUTE = create("reap-count", ModelType.INT)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_BLOCKING_TIME_AVERAGE_ATTRIBUTE = create("blocking-time-average-ms", ModelType.INT)
.setMeasurementUnit(MeasurementUnit.MILLISECONDS)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_BLOCKING_TIME_MAX_ATTRIBUTE = create("blocking-time-max-ms", ModelType.INT)
.setMeasurementUnit(MeasurementUnit.MILLISECONDS)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_BLOCKING_TIME_TOTAL_ATTRIBUTE = create("blocking-time-total-ms", ModelType.INT)
.setMeasurementUnit(MeasurementUnit.MILLISECONDS)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_CREATION_TIME_AVERAGE_ATTRIBUTE = create("creation-time-average-ms", ModelType.INT)
.setMeasurementUnit(MeasurementUnit.MILLISECONDS)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_CREATION_TIME_MAX_ATTRIBUTE = create("creation-time-max-ms", ModelType.INT)
.setMeasurementUnit(MeasurementUnit.MILLISECONDS)
.setStorageRuntime()
.build();

static final SimpleAttributeDefinition STATISTICS_CREATION_TIME_TOTAL_ATTRIBUTE = create("creation-time-total-ms", ModelType.INT)
.setMeasurementUnit(MeasurementUnit.MILLISECONDS)
.setStorageRuntime()
.build();

private static final ObjectTypeAttributeDefinition STATISTICS = ObjectTypeAttributeDefinition.create("statistics", STATISTICS_ACQUIRE_COUNT_ATTRIBUTE, STATISTICS_ACTIVE_COUNT_ATTRIBUTE, STATISTICS_AVAILABLE_COUNT_ATTRIBUTE, STATISTICS_AWAITING_COUNT_ATTRIBUTE, STATISTICS_CREATION_COUNT_ATTRIBUTE, STATISTICS_DESTOY_COUNT_ATTRIBUTE, STATISTICS_FLUSH_COUNT_ATTRIBUTE, STATISTICS_INVALID_COUNT_ATTRIBUTE, STATISTICS_LEAK_DETECTION_COUNT_ATTRIBUTE, STATISTICS_MAX_USED_COUNT_ATTRIBUTE, STATISTICS_REAP_COUNT_ATTRIBUTE, STATISTICS_BLOCKING_TIME_AVERAGE_ATTRIBUTE, STATISTICS_BLOCKING_TIME_MAX_ATTRIBUTE, STATISTICS_BLOCKING_TIME_TOTAL_ATTRIBUTE, STATISTICS_CREATION_TIME_AVERAGE_ATTRIBUTE, STATISTICS_CREATION_TIME_MAX_ATTRIBUTE, STATISTICS_CREATION_TIME_TOTAL_ATTRIBUTE)
.setRequired(false) .setRequired(false)
.setStorageRuntime() .setStorageRuntime()
.build(); .build();
Expand Down
Expand Up @@ -281,25 +281,25 @@ public void execute(OperationContext context, ModelNode operation) throws Operat


ModelNode result = new ModelNode(); ModelNode result = new ModelNode();


result.get("acquire-count").set(metrics.acquireCount()); result.get(AbstractDataSourceDefinition.STATISTICS_ACQUIRE_COUNT_ATTRIBUTE.getName()).set(metrics.acquireCount());
result.get("active-count").set(metrics.activeCount()); result.get(AbstractDataSourceDefinition.STATISTICS_ACTIVE_COUNT_ATTRIBUTE.getName()).set(metrics.activeCount());
result.get("available-count").set(metrics.availableCount()); result.get(AbstractDataSourceDefinition.STATISTICS_AVAILABLE_COUNT_ATTRIBUTE.getName()).set(metrics.availableCount());
result.get("awaiting-count").set(metrics.awaitingCount()); result.get(AbstractDataSourceDefinition.STATISTICS_AWAITING_COUNT_ATTRIBUTE.getName()).set(metrics.awaitingCount());
result.get("creation-count").set(metrics.creationCount()); result.get(AbstractDataSourceDefinition.STATISTICS_CREATION_COUNT_ATTRIBUTE.getName()).set(metrics.creationCount());
result.get("destroy-count").set(metrics.destroyCount()); result.get(AbstractDataSourceDefinition.STATISTICS_DESTOY_COUNT_ATTRIBUTE.getName()).set(metrics.destroyCount());
result.get("flush-count").set(metrics.flushCount()); result.get(AbstractDataSourceDefinition.STATISTICS_FLUSH_COUNT_ATTRIBUTE.getName()).set(metrics.flushCount());
result.get("invalid-count").set(metrics.invalidCount()); result.get(AbstractDataSourceDefinition.STATISTICS_INVALID_COUNT_ATTRIBUTE.getName()).set(metrics.invalidCount());
result.get("leak-detection-count").set(metrics.leakDetectionCount()); result.get(AbstractDataSourceDefinition.STATISTICS_LEAK_DETECTION_COUNT_ATTRIBUTE.getName()).set(metrics.leakDetectionCount());
result.get("max-used-count").set(metrics.maxUsedCount()); result.get(AbstractDataSourceDefinition.STATISTICS_MAX_USED_COUNT_ATTRIBUTE.getName()).set(metrics.maxUsedCount());
result.get("reap-count").set(metrics.reapCount()); result.get(AbstractDataSourceDefinition.STATISTICS_REAP_COUNT_ATTRIBUTE.getName()).set(metrics.reapCount());


result.get("blocking-time-average-ms").set(metrics.blockingTimeAverage().toMillis()); result.get(AbstractDataSourceDefinition.STATISTICS_BLOCKING_TIME_AVERAGE_ATTRIBUTE.getName()).set(metrics.blockingTimeAverage().toMillis());
result.get("blocking-time-max-ms").set(metrics.blockingTimeMax().toMillis()); result.get(AbstractDataSourceDefinition.STATISTICS_BLOCKING_TIME_MAX_ATTRIBUTE.getName()).set(metrics.blockingTimeMax().toMillis());
result.get("blocking-time-total-ms").set(metrics.blockingTimeTotal().toMillis()); result.get(AbstractDataSourceDefinition.STATISTICS_BLOCKING_TIME_TOTAL_ATTRIBUTE.getName()).set(metrics.blockingTimeTotal().toMillis());


result.get("creation-time-average-ms").set(metrics.creationTimeAverage().toMillis()); result.get(AbstractDataSourceDefinition.STATISTICS_CREATION_TIME_AVERAGE_ATTRIBUTE.getName()).set(metrics.creationTimeAverage().toMillis());
result.get("creation-time-max-ms").set(metrics.creationTimeMax().toMillis()); result.get(AbstractDataSourceDefinition.STATISTICS_CREATION_TIME_MAX_ATTRIBUTE.getName()).set(metrics.creationTimeMax().toMillis());
result.get("creation-time-total-ms").set(metrics.creationTimeTotal().toMillis()); result.get(AbstractDataSourceDefinition.STATISTICS_CREATION_TIME_TOTAL_ATTRIBUTE.getName()).set(metrics.creationTimeTotal().toMillis());


context.getResult().set(result); context.getResult().set(result);
} }
Expand Down
Expand Up @@ -31,7 +31,7 @@


import org.jboss.as.controller.AttributeDefinition; import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.PersistentResourceDefinition; import org.jboss.as.controller.PersistentResourceDefinition;
import org.jboss.as.controller.PrimitiveListAttributeDefinition; import org.jboss.as.controller.PropertiesAttributeDefinition;
import org.jboss.as.controller.SimpleAttributeDefinition; import org.jboss.as.controller.SimpleAttributeDefinition;
import org.jboss.as.controller.access.constraint.ApplicationTypeConfig; import org.jboss.as.controller.access.constraint.ApplicationTypeConfig;
import org.jboss.as.controller.access.management.ApplicationTypeAccessConstraintDefinition; import org.jboss.as.controller.access.management.ApplicationTypeAccessConstraintDefinition;
Expand Down Expand Up @@ -61,8 +61,7 @@ class DriverDefinition extends PersistentResourceDefinition {
.setValidator(new StringLengthValidator(1)) .setValidator(new StringLengthValidator(1))
.build(); .build();


static final PrimitiveListAttributeDefinition CLASS_INFO = PrimitiveListAttributeDefinition.Builder.of("class-info", ModelType.LIST) static final PropertiesAttributeDefinition CLASS_INFO = new PropertiesAttributeDefinition.Builder("class-info", true)
.setRequired(false)
.setStorageRuntime() .setStorageRuntime()
.build(); .build();


Expand Down
Expand Up @@ -45,9 +45,27 @@ datasources-agroal.datasource.name=Name for the datasource (used for management)
datasources-agroal.datasource.jndi-name=Specifies the JNDI name for the datasource datasources-agroal.datasource.jndi-name=Specifies the JNDI name for the datasource
datasources-agroal.datasource.jta=Enable JTA integration datasources-agroal.datasource.jta=Enable JTA integration
datasources-agroal.datasource.connectable=Enable CMR (Commit Markable Resource) functionality on this datasource datasources-agroal.datasource.connectable=Enable CMR (Commit Markable Resource) functionality on this datasource
datasources-agroal.datasource.statistics=Runtime statistics provided by the datasource
datasources-agroal.datasource.statistics-enabled=Enable statistics for this datasource datasources-agroal.datasource.statistics-enabled=Enable statistics for this datasource
# #
datasources-agroal.datasource.statistics=Runtime statistics provided by the datasource
datasources-agroal.datasource.statistics.acquire-count=Number of connections acquired from the pool
datasources-agroal.datasource.statistics.active-count=Number of connections in use
datasources-agroal.datasource.statistics.available-count=Number of connections available in the pool
datasources-agroal.datasource.statistics.awaiting-count=Number of threads waiting for a connection
datasources-agroal.datasource.statistics.creation-count=Number of connections created
datasources-agroal.datasource.statistics.destroy-count=Number of connections destroyed
datasources-agroal.datasource.statistics.flush-count=Number of connections flushed
datasources-agroal.datasource.statistics.invalid-count=Number of times an invalid connection was detected
datasources-agroal.datasource.statistics.leak-detection-count=Number of times a leak of a connection was detected
datasources-agroal.datasource.statistics.max-used-count=Maximum number of connections simultaneously in use
datasources-agroal.datasource.statistics.reap-count=Number of time an unused connection was detected
datasources-agroal.datasource.statistics.blocking-time-average-ms=Average time a thread was blocked waiting for a connection, in milliseconds
datasources-agroal.datasource.statistics.blocking-time-max-ms=Maximum time a thread was blocked waiting for a connection, in milliseconds
datasources-agroal.datasource.statistics.blocking-time-total-ms=Total time threads were blocked waiting for a connection, in milliseconds
datasources-agroal.datasource.statistics.creation-time-average-ms=Average time it took for a connection to be created, in milliseconds
datasources-agroal.datasource.statistics.creation-time-max-ms=Maximum time it took for a connection to be created, in milliseconds
datasources-agroal.datasource.statistics.creation-time-total-ms=Total time it took for connections to be created, in milliseconds
#
datasources-agroal.datasource.connection-factory=Configuration for the connection factory datasources-agroal.datasource.connection-factory=Configuration for the connection factory
datasources-agroal.datasource.connection-factory.driver=Unique reference to the JDBC driver datasources-agroal.datasource.connection-factory.driver=Unique reference to the JDBC driver
datasources-agroal.datasource.connection-factory.url=JDBC driver connection URL (e.g. "jdbc:h2:tcp://localhost:1234") datasources-agroal.datasource.connection-factory.url=JDBC driver connection URL (e.g. "jdbc:h2:tcp://localhost:1234")
Expand Down Expand Up @@ -80,9 +98,27 @@ datasources-agroal.xa-datasource.remove=Add operation for a xa-datasource resour
# #
datasources-agroal.xa-datasource.name=Name for the xa-datasource (used for management) datasources-agroal.xa-datasource.name=Name for the xa-datasource (used for management)
datasources-agroal.xa-datasource.jndi-name=Specifies the JNDI name for the xa-datasource datasources-agroal.xa-datasource.jndi-name=Specifies the JNDI name for the xa-datasource
datasources-agroal.xa-datasource.statistics=Runtime statistics provided by the xa-datasource
datasources-agroal.xa-datasource.statistics-enabled=Enable statistics for this xa-datasource datasources-agroal.xa-datasource.statistics-enabled=Enable statistics for this xa-datasource
# #
datasources-agroal.xa-datasource.statistics=Runtime statistics provided by the datasource
datasources-agroal.xa-datasource.statistics.acquire-count=Number of connections acquired from the pool
datasources-agroal.xa-datasource.statistics.active-count=Number of connections in use
datasources-agroal.xa-datasource.statistics.available-count=Number of connections available in the pool
datasources-agroal.xa-datasource.statistics.awaiting-count=Number of threads waiting for a connection
datasources-agroal.xa-datasource.statistics.creation-count=Number of connections created
datasources-agroal.xa-datasource.statistics.destroy-count=Number of connections destroyed
datasources-agroal.xa-datasource.statistics.flush-count=Number of connections flushed
datasources-agroal.xa-datasource.statistics.invalid-count=Number of times an invalid connection was detected
datasources-agroal.xa-datasource.statistics.leak-detection-count=Number of times a leak of a connection was detected
datasources-agroal.xa-datasource.statistics.max-used-count=Maximum number of connections simultaneously in use
datasources-agroal.xa-datasource.statistics.reap-count=Number of time an unused connection was detected
datasources-agroal.xa-datasource.statistics.blocking-time-average-ms=Average time a thread was blocked waiting for a connection, in milliseconds
datasources-agroal.xa-datasource.statistics.blocking-time-max-ms=Maximum time a thread was blocked waiting for a connection, in milliseconds
datasources-agroal.xa-datasource.statistics.blocking-time-total-ms=Total time threads were blocked waiting for a connection, in milliseconds
datasources-agroal.xa-datasource.statistics.creation-time-average-ms=Average time it took for a connection to be created, in milliseconds
datasources-agroal.xa-datasource.statistics.creation-time-max-ms=Maximum time it took for a connection to be created, in milliseconds
datasources-agroal.xa-datasource.statistics.creation-time-total-ms=Total time it took for connections to be created, in milliseconds
#
datasources-agroal.xa-datasource.connection-factory=Configuration for the connection factory datasources-agroal.xa-datasource.connection-factory=Configuration for the connection factory
datasources-agroal.xa-datasource.connection-factory.driver=Unique reference to the JDBC driver datasources-agroal.xa-datasource.connection-factory.driver=Unique reference to the JDBC driver
datasources-agroal.xa-datasource.connection-factory.url=JDBC driver connection URL (e.g. "jdbc:h2:tcp://localhost:1234") datasources-agroal.xa-datasource.connection-factory.url=JDBC driver connection URL (e.g. "jdbc:h2:tcp://localhost:1234")
Expand Down

0 comments on commit fe842c1

Please sign in to comment.