tasker-engine 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +22 -0
- data/README.md +443 -0
- data/Rakefile +10 -0
- data/app/controllers/tasker/analytics_controller.rb +179 -0
- data/app/controllers/tasker/application_controller.rb +45 -0
- data/app/controllers/tasker/graphql_controller.rb +193 -0
- data/app/controllers/tasker/handlers_controller.rb +217 -0
- data/app/controllers/tasker/health_controller.rb +229 -0
- data/app/controllers/tasker/metrics_controller.rb +111 -0
- data/app/controllers/tasker/page_sort.rb +97 -0
- data/app/controllers/tasker/task_diagrams_controller.rb +30 -0
- data/app/controllers/tasker/tasks_controller.rb +123 -0
- data/app/controllers/tasker/workflow_steps_controller.rb +69 -0
- data/app/graphql/examples/all_tasks.graphql +22 -0
- data/app/graphql/examples/pending_tasks.graphql +23 -0
- data/app/graphql/tasker/graph_ql_types/annotation_type.rb +14 -0
- data/app/graphql/tasker/graph_ql_types/base_argument.rb +9 -0
- data/app/graphql/tasker/graph_ql_types/base_connection.rb +11 -0
- data/app/graphql/tasker/graph_ql_types/base_edge.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_enum.rb +9 -0
- data/app/graphql/tasker/graph_ql_types/base_field.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_input_object.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_interface.rb +14 -0
- data/app/graphql/tasker/graph_ql_types/base_object.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_scalar.rb +9 -0
- data/app/graphql/tasker/graph_ql_types/base_union.rb +11 -0
- data/app/graphql/tasker/graph_ql_types/dependent_system_object_map_type.rb +18 -0
- data/app/graphql/tasker/graph_ql_types/dependent_system_type.rb +13 -0
- data/app/graphql/tasker/graph_ql_types/mutation_type.rb +16 -0
- data/app/graphql/tasker/graph_ql_types/named_step_type.rb +16 -0
- data/app/graphql/tasker/graph_ql_types/named_task_type.rb +14 -0
- data/app/graphql/tasker/graph_ql_types/named_tasks_named_step_type.rb +19 -0
- data/app/graphql/tasker/graph_ql_types/node_type.rb +12 -0
- data/app/graphql/tasker/graph_ql_types/query_type.rb +20 -0
- data/app/graphql/tasker/graph_ql_types/task_annotation_type.rb +17 -0
- data/app/graphql/tasker/graph_ql_types/task_interface.rb +17 -0
- data/app/graphql/tasker/graph_ql_types/task_type.rb +26 -0
- data/app/graphql/tasker/graph_ql_types/workflow_step_type.rb +154 -0
- data/app/graphql/tasker/graph_ql_types.rb +42 -0
- data/app/graphql/tasker/mutations/base_mutation.rb +13 -0
- data/app/graphql/tasker/mutations/cancel_step.rb +29 -0
- data/app/graphql/tasker/mutations/cancel_task.rb +29 -0
- data/app/graphql/tasker/mutations/create_task.rb +52 -0
- data/app/graphql/tasker/mutations/update_step.rb +36 -0
- data/app/graphql/tasker/mutations/update_task.rb +41 -0
- data/app/graphql/tasker/queries/all_annotation_types.rb +17 -0
- data/app/graphql/tasker/queries/all_tasks.rb +23 -0
- data/app/graphql/tasker/queries/base_query.rb +9 -0
- data/app/graphql/tasker/queries/helpers.rb +16 -0
- data/app/graphql/tasker/queries/one_step.rb +24 -0
- data/app/graphql/tasker/queries/one_task.rb +18 -0
- data/app/graphql/tasker/queries/tasks_by_annotation.rb +31 -0
- data/app/graphql/tasker/queries/tasks_by_status.rb +30 -0
- data/app/graphql/tasker/tasker_rails_schema.rb +52 -0
- data/app/jobs/tasker/application_job.rb +8 -0
- data/app/jobs/tasker/metrics_export_job.rb +252 -0
- data/app/jobs/tasker/task_runner_job.rb +224 -0
- data/app/models/tasker/annotation_type.rb +26 -0
- data/app/models/tasker/application_record.rb +70 -0
- data/app/models/tasker/dependent_system.rb +26 -0
- data/app/models/tasker/dependent_system_object_map.rb +64 -0
- data/app/models/tasker/diagram/edge.rb +106 -0
- data/app/models/tasker/diagram/flowchart.rb +137 -0
- data/app/models/tasker/diagram/node.rb +99 -0
- data/app/models/tasker/named_step.rb +41 -0
- data/app/models/tasker/named_task.rb +121 -0
- data/app/models/tasker/named_tasks_named_step.rb +82 -0
- data/app/models/tasker/step_dag_relationship.rb +65 -0
- data/app/models/tasker/step_readiness_status.rb +59 -0
- data/app/models/tasker/task.rb +424 -0
- data/app/models/tasker/task_annotation.rb +36 -0
- data/app/models/tasker/task_diagram.rb +332 -0
- data/app/models/tasker/task_execution_context.rb +29 -0
- data/app/models/tasker/task_namespace.rb +41 -0
- data/app/models/tasker/task_transition.rb +235 -0
- data/app/models/tasker/workflow_step.rb +461 -0
- data/app/models/tasker/workflow_step_edge.rb +94 -0
- data/app/models/tasker/workflow_step_transition.rb +434 -0
- data/app/serializers/tasker/annotation_type_serializer.rb +8 -0
- data/app/serializers/tasker/handler_serializer.rb +109 -0
- data/app/serializers/tasker/task_annotation_serializer.rb +32 -0
- data/app/serializers/tasker/task_serializer.rb +168 -0
- data/app/serializers/tasker/workflow_step_serializer.rb +27 -0
- data/app/services/tasker/analytics_service.rb +409 -0
- data/app/views/tasker/task/_diagram.html.erb +32 -0
- data/config/initializers/dry_struct.rb +11 -0
- data/config/initializers/statesman.rb +6 -0
- data/config/initializers/tasker_orchestration.rb +17 -0
- data/config/initializers/time_formats.rb +4 -0
- data/config/routes.rb +34 -0
- data/config/tasker/subscriptions/example_integrations.yml +67 -0
- data/config/tasker/system_events.yml +305 -0
- data/db/functions/calculate_dependency_levels_v01.sql +45 -0
- data/db/functions/get_analytics_metrics_v01.sql +137 -0
- data/db/functions/get_slowest_steps_v01.sql +82 -0
- data/db/functions/get_slowest_tasks_v01.sql +96 -0
- data/db/functions/get_step_readiness_status_batch_v01.sql +140 -0
- data/db/functions/get_step_readiness_status_v01.sql +139 -0
- data/db/functions/get_system_health_counts_v01.sql +108 -0
- data/db/functions/get_task_execution_context_v01.sql +108 -0
- data/db/functions/get_task_execution_contexts_batch_v01.sql +104 -0
- data/db/init/schema.sql +2277 -0
- data/db/migrate/20250701165431_initial_tasker_schema.rb +116 -0
- data/db/views/tasker_step_dag_relationships_v01.sql +69 -0
- data/docs/APPLICATION_GENERATOR.md +384 -0
- data/docs/AUTH.md +1780 -0
- data/docs/CIRCUIT_BREAKER.md +224 -0
- data/docs/DEVELOPER_GUIDE.md +2665 -0
- data/docs/EVENT_SYSTEM.md +637 -0
- data/docs/EXECUTION_CONFIGURATION.md +341 -0
- data/docs/FLOW_CHART.md +149 -0
- data/docs/HEALTH.md +542 -0
- data/docs/METRICS.md +731 -0
- data/docs/OPTIMIZATION_PLAN.md +1479 -0
- data/docs/OVERVIEW.md +552 -0
- data/docs/QUICK_START.md +270 -0
- data/docs/REGISTRY_SYSTEMS.md +373 -0
- data/docs/REST_API.md +632 -0
- data/docs/ROADMAP.md +221 -0
- data/docs/SQL_FUNCTIONS.md +1408 -0
- data/docs/TASK_DIAGRAM.md +252 -0
- data/docs/TASK_EXECUTION_CONTROL_FLOW.md +237 -0
- data/docs/TELEMETRY.md +795 -0
- data/docs/TROUBLESHOOTING.md +756 -0
- data/docs/TaskHandlerGenerator.html +255 -0
- data/docs/Tasker/Analysis/RuntimeGraphAnalyzer.html +907 -0
- data/docs/Tasker/Analysis/TemplateGraphAnalyzer.html +1236 -0
- data/docs/Tasker/Analysis.html +117 -0
- data/docs/Tasker/AnalyticsController.html +450 -0
- data/docs/Tasker/AnalyticsService/BottleneckAnalytics.html +816 -0
- data/docs/Tasker/AnalyticsService/PerformanceAnalytics.html +586 -0
- data/docs/Tasker/AnalyticsService.html +2221 -0
- data/docs/Tasker/AnnotationType.html +137 -0
- data/docs/Tasker/AnnotationTypeSerializer.html +124 -0
- data/docs/Tasker/ApplicationController.html +147 -0
- data/docs/Tasker/ApplicationJob.html +128 -0
- data/docs/Tasker/ApplicationRecord.html +378 -0
- data/docs/Tasker/Authentication/AuthenticationError.html +124 -0
- data/docs/Tasker/Authentication/ConfigurationError.html +124 -0
- data/docs/Tasker/Authentication/Coordinator.html +242 -0
- data/docs/Tasker/Authentication/Interface.html +560 -0
- data/docs/Tasker/Authentication/InterfaceError.html +124 -0
- data/docs/Tasker/Authentication/NoneAuthenticator.html +338 -0
- data/docs/Tasker/Authentication.html +119 -0
- data/docs/Tasker/Authorization/AuthorizationError.html +139 -0
- data/docs/Tasker/Authorization/BaseCoordinator.html +927 -0
- data/docs/Tasker/Authorization/ConfigurationError.html +153 -0
- data/docs/Tasker/Authorization/ResourceConstants/ACTIONS.html +428 -0
- data/docs/Tasker/Authorization/ResourceConstants/RESOURCES.html +365 -0
- data/docs/Tasker/Authorization/ResourceConstants.html +146 -0
- data/docs/Tasker/Authorization/ResourceRegistry.html +882 -0
- data/docs/Tasker/Authorization/UnauthorizedError.html +153 -0
- data/docs/Tasker/Authorization.html +582 -0
- data/docs/Tasker/CacheCapabilities.html +167 -0
- data/docs/Tasker/CacheStrategy.html +1297 -0
- data/docs/Tasker/Concerns/Authenticatable.html +116 -0
- data/docs/Tasker/Concerns/Authorizable/AdminStatusChecker.html +256 -0
- data/docs/Tasker/Concerns/Authorizable.html +816 -0
- data/docs/Tasker/Concerns/ControllerAuthorizable.html +157 -0
- data/docs/Tasker/Concerns/EventPublisher.html +4023 -0
- data/docs/Tasker/Concerns/IdempotentStateTransitions.html +806 -0
- data/docs/Tasker/Concerns/LifecycleEventHelpers.html +129 -0
- data/docs/Tasker/Concerns/OrchestrationPublisher.html +129 -0
- data/docs/Tasker/Concerns/StateMachineBase/ClassMethods.html +1075 -0
- data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase/ClassMethods.html +191 -0
- data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase.html +126 -0
- data/docs/Tasker/Concerns/StateMachineBase.html +153 -0
- data/docs/Tasker/Concerns/StructuredLogging.html +1413 -0
- data/docs/Tasker/Concerns.html +117 -0
- data/docs/Tasker/Configuration/AuthConfiguration.html +1023 -0
- data/docs/Tasker/Configuration/ConfigurationProxy.html +581 -0
- data/docs/Tasker/Configuration/DatabaseConfiguration.html +475 -0
- data/docs/Tasker/Configuration/EngineConfiguration.html +1265 -0
- data/docs/Tasker/Configuration/HealthConfiguration.html +791 -0
- data/docs/Tasker/Configuration/TelemetryConfiguration.html +1308 -0
- data/docs/Tasker/Configuration/TelemetryConfigurationProxy.html +388 -0
- data/docs/Tasker/Configuration.html +1669 -0
- data/docs/Tasker/ConfigurationError.html +143 -0
- data/docs/Tasker/ConfiguredTask.html +514 -0
- data/docs/Tasker/Constants/EventDefinitions.html +590 -0
- data/docs/Tasker/Constants/LifecycleEvents.html +137 -0
- data/docs/Tasker/Constants/ObservabilityEvents/Step.html +152 -0
- data/docs/Tasker/Constants/ObservabilityEvents/Task.html +142 -0
- data/docs/Tasker/Constants/ObservabilityEvents.html +126 -0
- data/docs/Tasker/Constants/RegistryEvents.html +285 -0
- data/docs/Tasker/Constants/StepEvents.html +177 -0
- data/docs/Tasker/Constants/TaskEvents.html +167 -0
- data/docs/Tasker/Constants/TaskExecution/ExecutionStatus.html +207 -0
- data/docs/Tasker/Constants/TaskExecution/HealthStatus.html +191 -0
- data/docs/Tasker/Constants/TaskExecution/RecommendedAction.html +207 -0
- data/docs/Tasker/Constants/TaskExecution.html +126 -0
- data/docs/Tasker/Constants/TaskFinalization/ErrorMessages.html +132 -0
- data/docs/Tasker/Constants/TaskFinalization/PendingReasons.html +207 -0
- data/docs/Tasker/Constants/TaskFinalization/ReenqueueReasons.html +239 -0
- data/docs/Tasker/Constants/TaskFinalization.html +126 -0
- data/docs/Tasker/Constants/TaskStatuses.html +223 -0
- data/docs/Tasker/Constants/TestEvents.html +163 -0
- data/docs/Tasker/Constants/WorkflowEvents.html +222 -0
- data/docs/Tasker/Constants/WorkflowStepStatuses.html +223 -0
- data/docs/Tasker/Constants.html +561 -0
- data/docs/Tasker/DependentSystem.html +137 -0
- data/docs/Tasker/DependentSystemObjectMap.html +250 -0
- data/docs/Tasker/DetectorRegistry.html +598 -0
- data/docs/Tasker/Diagram/Edge.html +1191 -0
- data/docs/Tasker/Diagram/Flowchart.html +1539 -0
- data/docs/Tasker/Diagram/Node.html +1165 -0
- data/docs/Tasker/Diagram.html +117 -0
- data/docs/Tasker/Engine.html +215 -0
- data/docs/Tasker/Error.html +139 -0
- data/docs/Tasker/Events/Bus.html +1226 -0
- data/docs/Tasker/Events/Catalog/CatalogPrinter.html +258 -0
- data/docs/Tasker/Events/Catalog/CustomEventRegistrar.html +276 -0
- data/docs/Tasker/Events/Catalog/ExamplePayloadGenerator.html +294 -0
- data/docs/Tasker/Events/Catalog.html +1291 -0
- data/docs/Tasker/Events/CustomRegistry.html +943 -0
- data/docs/Tasker/Events/DefinitionLoader.html +575 -0
- data/docs/Tasker/Events/EventPayloadBuilder/ErrorInfoExtractor.html +286 -0
- data/docs/Tasker/Events/EventPayloadBuilder/StepPayloadBuilder.html +312 -0
- data/docs/Tasker/Events/EventPayloadBuilder.html +664 -0
- data/docs/Tasker/Events/Publisher.html +365 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer/ErrorTypeClassifier.html +1128 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer.html +270 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber/MetricTagsExtractor.html +266 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber.html +2556 -0
- data/docs/Tasker/Events/Subscribers/MetricsSubscriber.html +723 -0
- data/docs/Tasker/Events/Subscribers/TelemetrySubscriber.html +2251 -0
- data/docs/Tasker/Events/Subscribers.html +117 -0
- data/docs/Tasker/Events/SubscriptionLoader.html +493 -0
- data/docs/Tasker/Events.html +294 -0
- data/docs/Tasker/EventsGenerator.html +459 -0
- data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics/AnalyticsMetrics.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics.html +412 -0
- data/docs/Tasker/Functions/FunctionBasedDependencyLevels.html +598 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestSteps/SlowestStep.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestSteps.html +453 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestTasks/SlowestTask.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestTasks.html +453 -0
- data/docs/Tasker/Functions/FunctionBasedStepReadinessStatus.html +1457 -0
- data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts/HealthMetrics.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts.html +370 -0
- data/docs/Tasker/Functions/FunctionBasedTaskExecutionContext.html +1250 -0
- data/docs/Tasker/Functions/FunctionWrapper.html +479 -0
- data/docs/Tasker/Functions.html +117 -0
- data/docs/Tasker/Generators/AuthenticatorGenerator/UsageInstructionsFormatter.html +244 -0
- data/docs/Tasker/Generators/AuthenticatorGenerator.html +373 -0
- data/docs/Tasker/Generators/AuthorizationCoordinatorGenerator.html +430 -0
- data/docs/Tasker/Generators/SubscriberGenerator.html +377 -0
- data/docs/Tasker/Generators/TaskHandlerGenerator.html +263 -0
- data/docs/Tasker/Generators.html +117 -0
- data/docs/Tasker/GraphQLTypes/AnnotationType.html +132 -0
- data/docs/Tasker/GraphQLTypes/BaseArgument.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseConnection.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseEdge.html +130 -0
- data/docs/Tasker/GraphQLTypes/BaseEnum.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseField.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseInputObject.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseInterface.html +116 -0
- data/docs/Tasker/GraphQLTypes/BaseObject.html +128 -0
- data/docs/Tasker/GraphQLTypes/BaseScalar.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseUnion.html +124 -0
- data/docs/Tasker/GraphQLTypes/DependentSystemObjectMapType.html +132 -0
- data/docs/Tasker/GraphQLTypes/DependentSystemType.html +132 -0
- data/docs/Tasker/GraphQLTypes/MutationType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NamedStepType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NamedTaskType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NamedTasksNamedStepType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NodeType.html +118 -0
- data/docs/Tasker/GraphQLTypes/QueryType.html +139 -0
- data/docs/Tasker/GraphQLTypes/TaskAnnotationType.html +132 -0
- data/docs/Tasker/GraphQLTypes/TaskInterface.html +111 -0
- data/docs/Tasker/GraphQLTypes/TaskType.html +201 -0
- data/docs/Tasker/GraphQLTypes/WorkflowStepType.html +694 -0
- data/docs/Tasker/GraphQLTypes.html +130 -0
- data/docs/Tasker/GraphqlController.html +251 -0
- data/docs/Tasker/HandlerFactory.html +1518 -0
- data/docs/Tasker/HandlerSerializer.html +682 -0
- data/docs/Tasker/HandlersController.html +574 -0
- data/docs/Tasker/HashIdentityStrategy.html +278 -0
- data/docs/Tasker/Health/ReadinessChecker.html +712 -0
- data/docs/Tasker/Health/StatusChecker.html +653 -0
- data/docs/Tasker/Health.html +117 -0
- data/docs/Tasker/HealthController.html +523 -0
- data/docs/Tasker/IdentityStrategy.html +276 -0
- data/docs/Tasker/InvalidTaskHandlerConfig.html +135 -0
- data/docs/Tasker/LifecycleEvents/Events/Step.html +162 -0
- data/docs/Tasker/LifecycleEvents/Events/Task.html +162 -0
- data/docs/Tasker/LifecycleEvents/Events.html +204 -0
- data/docs/Tasker/LifecycleEvents/Publisher.html +132 -0
- data/docs/Tasker/LifecycleEvents.html +799 -0
- data/docs/Tasker/Logging/CorrelationIdGenerator.html +688 -0
- data/docs/Tasker/Logging.html +115 -0
- data/docs/Tasker/MetricsController.html +293 -0
- data/docs/Tasker/MetricsExportJob.html +414 -0
- data/docs/Tasker/Mutations/BaseMutation.html +128 -0
- data/docs/Tasker/Mutations/CancelStep.html +219 -0
- data/docs/Tasker/Mutations/CancelTask.html +221 -0
- data/docs/Tasker/Mutations/CreateTask.html +243 -0
- data/docs/Tasker/Mutations/UpdateStep.html +243 -0
- data/docs/Tasker/Mutations/UpdateTask.html +243 -0
- data/docs/Tasker/Mutations.html +117 -0
- data/docs/Tasker/NamedStep.html +216 -0
- data/docs/Tasker/NamedTask.html +910 -0
- data/docs/Tasker/NamedTasksNamedStep.html +435 -0
- data/docs/Tasker/Orchestration/BackoffCalculator.html +404 -0
- data/docs/Tasker/Orchestration/ConnectionBuilder/ConfigValidator.html +258 -0
- data/docs/Tasker/Orchestration/ConnectionBuilder.html +435 -0
- data/docs/Tasker/Orchestration/ConnectionPoolIntelligence.html +513 -0
- data/docs/Tasker/Orchestration/Coordinator.html +641 -0
- data/docs/Tasker/Orchestration/FutureStateAnalyzer.html +1045 -0
- data/docs/Tasker/Orchestration/Orchestrator.html +679 -0
- data/docs/Tasker/Orchestration/PluginIntegration.html +1127 -0
- data/docs/Tasker/Orchestration/ResponseProcessor.html +504 -0
- data/docs/Tasker/Orchestration/RetryHeaderParser.html +304 -0
- data/docs/Tasker/Orchestration/StepExecutor.html +995 -0
- data/docs/Tasker/Orchestration/StepSequenceFactory.html +644 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/BlockageChecker.html +264 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/ContextManager.html +254 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/DelayCalculator.html +556 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationDecisionMaker.html +348 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationProcessor.html +286 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/ReasonDeterminer.html +432 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/ReenqueueManager.html +296 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/UnclearStateHandler.html +314 -0
- data/docs/Tasker/Orchestration/TaskFinalizer.html +1212 -0
- data/docs/Tasker/Orchestration/TaskInitializer.html +766 -0
- data/docs/Tasker/Orchestration/TaskReenqueuer.html +506 -0
- data/docs/Tasker/Orchestration/ViableStepDiscovery.html +442 -0
- data/docs/Tasker/Orchestration/WorkflowCoordinator.html +510 -0
- data/docs/Tasker/Orchestration.html +130 -0
- data/docs/Tasker/PageSort/PageSortParamsBuilder.html +296 -0
- data/docs/Tasker/PageSort.html +247 -0
- data/docs/Tasker/PermanentError.html +518 -0
- data/docs/Tasker/ProceduralError.html +147 -0
- data/docs/Tasker/Queries/AllAnnotationTypes.html +217 -0
- data/docs/Tasker/Queries/AllTasks.html +221 -0
- data/docs/Tasker/Queries/BaseQuery.html +128 -0
- data/docs/Tasker/Queries/Helpers.html +187 -0
- data/docs/Tasker/Queries/OneStep.html +225 -0
- data/docs/Tasker/Queries/OneTask.html +217 -0
- data/docs/Tasker/Queries/TasksByAnnotation.html +231 -0
- data/docs/Tasker/Queries/TasksByStatus.html +233 -0
- data/docs/Tasker/Queries.html +119 -0
- data/docs/Tasker/Railtie.html +124 -0
- data/docs/Tasker/Registry/BaseRegistry.html +1690 -0
- data/docs/Tasker/Registry/EventPublisher.html +667 -0
- data/docs/Tasker/Registry/InterfaceValidator.html +569 -0
- data/docs/Tasker/Registry/RegistrationError.html +132 -0
- data/docs/Tasker/Registry/RegistryError.html +139 -0
- data/docs/Tasker/Registry/StatisticsCollector.html +841 -0
- data/docs/Tasker/Registry/SubscriberRegistry.html +1504 -0
- data/docs/Tasker/Registry/ValidationError.html +132 -0
- data/docs/Tasker/Registry.html +119 -0
- data/docs/Tasker/RetryableError.html +515 -0
- data/docs/Tasker/StateMachine/Compatibility.html +282 -0
- data/docs/Tasker/StateMachine/InvalidStateTransition.html +135 -0
- data/docs/Tasker/StateMachine/StepStateMachine/StandardizedPayloadBuilder.html +260 -0
- data/docs/Tasker/StateMachine/StepStateMachine.html +2215 -0
- data/docs/Tasker/StateMachine/TaskStateMachine.html +734 -0
- data/docs/Tasker/StateMachine.html +602 -0
- data/docs/Tasker/StepDagRelationship.html +657 -0
- data/docs/Tasker/StepHandler/Api/Config.html +1091 -0
- data/docs/Tasker/StepHandler/Api.html +884 -0
- data/docs/Tasker/StepHandler/AutomaticEventPublishing.html +321 -0
- data/docs/Tasker/StepHandler/Base.html +970 -0
- data/docs/Tasker/StepHandler.html +119 -0
- data/docs/Tasker/StepReadinessStatus.html +836 -0
- data/docs/Tasker/Task.html +2575 -0
- data/docs/Tasker/TaskAnnotation.html +137 -0
- data/docs/Tasker/TaskAnnotationSerializer.html +124 -0
- data/docs/Tasker/TaskBuilder/StepNameValidator.html +264 -0
- data/docs/Tasker/TaskBuilder/StepTemplateDefiner.html +264 -0
- data/docs/Tasker/TaskBuilder.html +764 -0
- data/docs/Tasker/TaskDiagram/StepToStepEdgeBuilder.html +260 -0
- data/docs/Tasker/TaskDiagram/TaskToRootStepEdgeBuilder.html +290 -0
- data/docs/Tasker/TaskDiagram.html +548 -0
- data/docs/Tasker/TaskDiagramsController.html +240 -0
- data/docs/Tasker/TaskExecutionContext.html +469 -0
- data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/ClassBasedEventRegistrar.html +238 -0
- data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/YamlEventRegistrar.html +254 -0
- data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner.html +988 -0
- data/docs/Tasker/TaskHandler/ClassMethods.html +357 -0
- data/docs/Tasker/TaskHandler/InstanceMethods.html +1396 -0
- data/docs/Tasker/TaskHandler/StepGroup.html +1748 -0
- data/docs/Tasker/TaskHandler.html +271 -0
- data/docs/Tasker/TaskNamespace.html +312 -0
- data/docs/Tasker/TaskRunnerJob.html +406 -0
- data/docs/Tasker/TaskSerializer.html +474 -0
- data/docs/Tasker/TaskTransition.html +1517 -0
- data/docs/Tasker/TaskWorkflowSummary.html +988 -0
- data/docs/Tasker/TaskerRailsSchema/InvalidObjectTypeError.html +132 -0
- data/docs/Tasker/TaskerRailsSchema/TypeResolutionError.html +139 -0
- data/docs/Tasker/TaskerRailsSchema/UnknownInterfaceError.html +132 -0
- data/docs/Tasker/TaskerRailsSchema.html +384 -0
- data/docs/Tasker/TasksController.html +595 -0
- data/docs/Tasker/Telemetry/EventMapping.html +1307 -0
- data/docs/Tasker/Telemetry/EventRouter.html +2178 -0
- data/docs/Tasker/Telemetry/Events/ExportEvents.html +246 -0
- data/docs/Tasker/Telemetry/Events.html +115 -0
- data/docs/Tasker/Telemetry/ExportCoordinator/DistributedLockTimeoutError.html +135 -0
- data/docs/Tasker/Telemetry/ExportCoordinator.html +2137 -0
- data/docs/Tasker/Telemetry/IntelligentCacheManager.html +1083 -0
- data/docs/Tasker/Telemetry/LogBackend.html +1088 -0
- data/docs/Tasker/Telemetry/MetricTypes/Counter.html +1054 -0
- data/docs/Tasker/Telemetry/MetricTypes/Gauge.html +1270 -0
- data/docs/Tasker/Telemetry/MetricTypes/Histogram.html +1492 -0
- data/docs/Tasker/Telemetry/MetricTypes.html +153 -0
- data/docs/Tasker/Telemetry/MetricsBackend.html +2510 -0
- data/docs/Tasker/Telemetry/MetricsExportService.html +578 -0
- data/docs/Tasker/Telemetry/PluginRegistry.html +1774 -0
- data/docs/Tasker/Telemetry/Plugins/BaseExporter.html +1835 -0
- data/docs/Tasker/Telemetry/Plugins/CsvExporter.html +768 -0
- data/docs/Tasker/Telemetry/Plugins/JsonExporter.html +747 -0
- data/docs/Tasker/Telemetry/Plugins.html +117 -0
- data/docs/Tasker/Telemetry/PrometheusExporter.html +481 -0
- data/docs/Tasker/Telemetry/TraceBackend.html +891 -0
- data/docs/Tasker/Telemetry.html +130 -0
- data/docs/Tasker/Types/AuthConfig.html +886 -0
- data/docs/Tasker/Types/BackoffConfig.html +1063 -0
- data/docs/Tasker/Types/BaseConfig.html +227 -0
- data/docs/Tasker/Types/CacheConfig.html +1731 -0
- data/docs/Tasker/Types/DatabaseConfig.html +388 -0
- data/docs/Tasker/Types/DependencyGraph.html +526 -0
- data/docs/Tasker/Types/DependencyGraphConfig.html +753 -0
- data/docs/Tasker/Types/EngineConfig.html +1181 -0
- data/docs/Tasker/Types/ExecutionConfig.html +1963 -0
- data/docs/Tasker/Types/GraphEdge.html +517 -0
- data/docs/Tasker/Types/GraphMetadata.html +781 -0
- data/docs/Tasker/Types/GraphNode.html +694 -0
- data/docs/Tasker/Types/HealthConfig.html +784 -0
- data/docs/Tasker/Types/StepSequence.html +353 -0
- data/docs/Tasker/Types/StepTemplate.html +1193 -0
- data/docs/Tasker/Types/TaskRequest.html +1179 -0
- data/docs/Tasker/Types/TelemetryConfig.html +2746 -0
- data/docs/Tasker/Types.html +154 -0
- data/docs/Tasker/WorkflowStep/StepFinder.html +282 -0
- data/docs/Tasker/WorkflowStep.html +2724 -0
- data/docs/Tasker/WorkflowStepEdge.html +304 -0
- data/docs/Tasker/WorkflowStepSerializer.html +305 -0
- data/docs/Tasker/WorkflowStepTransition/TransitionDescriptionFormatter.html +282 -0
- data/docs/Tasker/WorkflowStepTransition.html +2201 -0
- data/docs/Tasker/WorkflowStepsController.html +462 -0
- data/docs/Tasker.html +452 -0
- data/docs/VISION.md +584 -0
- data/docs/WHY.md +21 -0
- data/docs/_index.html +2375 -0
- data/docs/class_list.html +54 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +503 -0
- data/docs/events/migration_plan_outcomes.md +80 -0
- data/docs/file.README.html +541 -0
- data/docs/file_list.html +59 -0
- data/docs/frames.html +22 -0
- data/docs/index.html +541 -0
- data/docs/js/app.js +344 -0
- data/docs/js/full_list.js +242 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +9182 -0
- data/docs/top-level-namespace.html +110 -0
- data/lib/generators/tasker/authenticator_generator.rb +301 -0
- data/lib/generators/tasker/authorization_coordinator_generator.rb +139 -0
- data/lib/generators/tasker/events_generator.rb +91 -0
- data/lib/generators/tasker/subscriber_generator.rb +107 -0
- data/lib/generators/tasker/task_handler_generator.rb +138 -0
- data/lib/generators/tasker/templates/api_token_authenticator.rb.erb +113 -0
- data/lib/generators/tasker/templates/api_token_authenticator_spec.rb.erb +144 -0
- data/lib/generators/tasker/templates/authorization_coordinator.rb.erb +95 -0
- data/lib/generators/tasker/templates/authorization_coordinator_spec.rb.erb +142 -0
- data/lib/generators/tasker/templates/custom_authenticator.rb.erb +108 -0
- data/lib/generators/tasker/templates/custom_authenticator_spec.rb.erb +162 -0
- data/lib/generators/tasker/templates/custom_events.yml.erb +62 -0
- data/lib/generators/tasker/templates/custom_subscriber.rb.erb +72 -0
- data/lib/generators/tasker/templates/devise_authenticator.rb.erb +101 -0
- data/lib/generators/tasker/templates/devise_authenticator_spec.rb.erb +126 -0
- data/lib/generators/tasker/templates/initialize.rb.erb +202 -0
- data/lib/generators/tasker/templates/jwt_authenticator.rb.erb +144 -0
- data/lib/generators/tasker/templates/jwt_authenticator_spec.rb.erb +298 -0
- data/lib/generators/tasker/templates/metrics_subscriber.rb.erb +258 -0
- data/lib/generators/tasker/templates/metrics_subscriber_spec.rb.erb +308 -0
- data/lib/generators/tasker/templates/omniauth_authenticator.rb.erb +135 -0
- data/lib/generators/tasker/templates/omniauth_authenticator_spec.rb.erb +196 -0
- data/lib/generators/tasker/templates/opentelemetry_initializer.rb +52 -0
- data/lib/generators/tasker/templates/subscriber.rb.erb +64 -0
- data/lib/generators/tasker/templates/subscriber_spec.rb.erb +80 -0
- data/lib/generators/tasker/templates/task_config.yaml.erb +117 -0
- data/lib/generators/tasker/templates/task_handler.rb.erb +59 -0
- data/lib/generators/tasker/templates/task_handler_spec.rb.erb +159 -0
- data/lib/tasker/analysis/runtime_graph_analyzer.rb +1168 -0
- data/lib/tasker/analysis/template_graph_analyzer.rb +328 -0
- data/lib/tasker/authentication/coordinator.rb +78 -0
- data/lib/tasker/authentication/errors.rb +9 -0
- data/lib/tasker/authentication/interface.rb +36 -0
- data/lib/tasker/authentication/none_authenticator.rb +26 -0
- data/lib/tasker/authorization/base_coordinator.rb +112 -0
- data/lib/tasker/authorization/errors.rb +26 -0
- data/lib/tasker/authorization/resource_constants.rb +74 -0
- data/lib/tasker/authorization/resource_registry.rb +143 -0
- data/lib/tasker/authorization.rb +75 -0
- data/lib/tasker/cache_capabilities.rb +131 -0
- data/lib/tasker/cache_strategy.rb +469 -0
- data/lib/tasker/concerns/authenticatable.rb +41 -0
- data/lib/tasker/concerns/authorizable.rb +204 -0
- data/lib/tasker/concerns/controller_authorizable.rb +124 -0
- data/lib/tasker/concerns/event_publisher.rb +716 -0
- data/lib/tasker/concerns/idempotent_state_transitions.rb +128 -0
- data/lib/tasker/concerns/state_machine_base.rb +218 -0
- data/lib/tasker/concerns/structured_logging.rb +387 -0
- data/lib/tasker/configuration.rb +325 -0
- data/lib/tasker/constants/event_definitions.rb +147 -0
- data/lib/tasker/constants/registry_events.rb +54 -0
- data/lib/tasker/constants.rb +417 -0
- data/lib/tasker/engine.rb +90 -0
- data/lib/tasker/errors.rb +90 -0
- data/lib/tasker/events/catalog.rb +432 -0
- data/lib/tasker/events/custom_registry.rb +175 -0
- data/lib/tasker/events/definition_loader.rb +199 -0
- data/lib/tasker/events/event_payload_builder.rb +461 -0
- data/lib/tasker/events/publisher.rb +149 -0
- data/lib/tasker/events/subscribers/base_subscriber.rb +601 -0
- data/lib/tasker/events/subscribers/metrics_subscriber.rb +120 -0
- data/lib/tasker/events/subscribers/telemetry_subscriber.rb +462 -0
- data/lib/tasker/events/subscription_loader.rb +161 -0
- data/lib/tasker/events.rb +37 -0
- data/lib/tasker/functions/function_based_analytics_metrics.rb +103 -0
- data/lib/tasker/functions/function_based_dependency_levels.rb +54 -0
- data/lib/tasker/functions/function_based_slowest_steps.rb +84 -0
- data/lib/tasker/functions/function_based_slowest_tasks.rb +84 -0
- data/lib/tasker/functions/function_based_step_readiness_status.rb +183 -0
- data/lib/tasker/functions/function_based_system_health_counts.rb +94 -0
- data/lib/tasker/functions/function_based_task_execution_context.rb +148 -0
- data/lib/tasker/functions/function_wrapper.rb +42 -0
- data/lib/tasker/functions.rb +12 -0
- data/lib/tasker/handler_factory.rb +322 -0
- data/lib/tasker/health/readiness_checker.rb +186 -0
- data/lib/tasker/health/status_checker.rb +203 -0
- data/lib/tasker/identity_strategy.rb +38 -0
- data/lib/tasker/logging/correlation_id_generator.rb +120 -0
- data/lib/tasker/orchestration/backoff_calculator.rb +184 -0
- data/lib/tasker/orchestration/connection_builder.rb +122 -0
- data/lib/tasker/orchestration/connection_pool_intelligence.rb +177 -0
- data/lib/tasker/orchestration/coordinator.rb +119 -0
- data/lib/tasker/orchestration/future_state_analyzer.rb +137 -0
- data/lib/tasker/orchestration/plugin_integration.rb +124 -0
- data/lib/tasker/orchestration/response_processor.rb +168 -0
- data/lib/tasker/orchestration/retry_header_parser.rb +78 -0
- data/lib/tasker/orchestration/step_executor.rb +941 -0
- data/lib/tasker/orchestration/step_sequence_factory.rb +67 -0
- data/lib/tasker/orchestration/task_finalizer.rb +564 -0
- data/lib/tasker/orchestration/task_initializer.rb +140 -0
- data/lib/tasker/orchestration/task_reenqueuer.rb +71 -0
- data/lib/tasker/orchestration/viable_step_discovery.rb +65 -0
- data/lib/tasker/orchestration/workflow_coordinator.rb +294 -0
- data/lib/tasker/orchestration.rb +45 -0
- data/lib/tasker/railtie.rb +9 -0
- data/lib/tasker/registry/base_registry.rb +177 -0
- data/lib/tasker/registry/event_publisher.rb +91 -0
- data/lib/tasker/registry/interface_validator.rb +140 -0
- data/lib/tasker/registry/statistics_collector.rb +381 -0
- data/lib/tasker/registry/subscriber_registry.rb +285 -0
- data/lib/tasker/registry.rb +22 -0
- data/lib/tasker/state_machine/step_state_machine.rb +508 -0
- data/lib/tasker/state_machine/task_state_machine.rb +192 -0
- data/lib/tasker/state_machine.rb +83 -0
- data/lib/tasker/step_handler/api.rb +410 -0
- data/lib/tasker/step_handler/base.rb +206 -0
- data/lib/tasker/task_builder.rb +432 -0
- data/lib/tasker/task_handler/class_methods.rb +324 -0
- data/lib/tasker/task_handler/instance_methods.rb +293 -0
- data/lib/tasker/task_handler/step_group.rb +182 -0
- data/lib/tasker/task_handler.rb +43 -0
- data/lib/tasker/telemetry/event_mapping.rb +126 -0
- data/lib/tasker/telemetry/event_router.rb +318 -0
- data/lib/tasker/telemetry/events/export_events.rb +38 -0
- data/lib/tasker/telemetry/export_coordinator.rb +497 -0
- data/lib/tasker/telemetry/intelligent_cache_manager.rb +508 -0
- data/lib/tasker/telemetry/log_backend.rb +224 -0
- data/lib/tasker/telemetry/metric_types.rb +368 -0
- data/lib/tasker/telemetry/metrics_backend.rb +1227 -0
- data/lib/tasker/telemetry/metrics_export_service.rb +392 -0
- data/lib/tasker/telemetry/plugin_registry.rb +333 -0
- data/lib/tasker/telemetry/plugins/base_exporter.rb +246 -0
- data/lib/tasker/telemetry/plugins/csv_exporter.rb +198 -0
- data/lib/tasker/telemetry/plugins/json_exporter.rb +141 -0
- data/lib/tasker/telemetry/prometheus_exporter.rb +249 -0
- data/lib/tasker/telemetry/trace_backend.rb +186 -0
- data/lib/tasker/telemetry.rb +59 -0
- data/lib/tasker/types/auth_config.rb +81 -0
- data/lib/tasker/types/backoff_config.rb +142 -0
- data/lib/tasker/types/cache_config.rb +257 -0
- data/lib/tasker/types/database_config.rb +39 -0
- data/lib/tasker/types/dependency_graph.rb +225 -0
- data/lib/tasker/types/dependency_graph_config.rb +149 -0
- data/lib/tasker/types/engine_config.rb +131 -0
- data/lib/tasker/types/execution_config.rb +289 -0
- data/lib/tasker/types/health_config.rb +84 -0
- data/lib/tasker/types/step_sequence.rb +24 -0
- data/lib/tasker/types/step_template.rb +63 -0
- data/lib/tasker/types/task_request.rb +60 -0
- data/lib/tasker/types/telemetry_config.rb +273 -0
- data/lib/tasker/types.rb +64 -0
- data/lib/tasker/version.rb +7 -0
- data/lib/tasker.rb +82 -0
- data/lib/tasks/tasker_tasks.rake +302 -0
- metadata +958 -0
@@ -0,0 +1,1492 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Class: Tasker::Telemetry::MetricTypes::Histogram
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.37
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="../../../css/style.css" type="text/css" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="../../../css/common.css" type="text/css" />
|
16
|
+
|
17
|
+
<script type="text/javascript">
|
18
|
+
pathId = "Tasker::Telemetry::MetricTypes::Histogram";
|
19
|
+
relpath = '../../../';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../../../js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../../../js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="../../../class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="../../../_index.html">Index (H)</a> »
|
40
|
+
<span class='title'><span class='object_link'><a href="../../../Tasker.html" title="Tasker (module)">Tasker</a></span></span> » <span class='title'><span class='object_link'><a href="../../Telemetry.html" title="Tasker::Telemetry (module)">Telemetry</a></span></span> » <span class='title'><span class='object_link'><a href="../MetricTypes.html" title="Tasker::Telemetry::MetricTypes (module)">MetricTypes</a></span></span>
|
41
|
+
»
|
42
|
+
<span class="title">Histogram</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="../../../class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Class: Tasker::Telemetry::MetricTypes::Histogram
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
<dl>
|
70
|
+
<dt>Inherits:</dt>
|
71
|
+
<dd>
|
72
|
+
<span class="inheritName">Object</span>
|
73
|
+
|
74
|
+
<ul class="fullTree">
|
75
|
+
<li>Object</li>
|
76
|
+
|
77
|
+
<li class="next">Tasker::Telemetry::MetricTypes::Histogram</li>
|
78
|
+
|
79
|
+
</ul>
|
80
|
+
<a href="#" class="inheritanceTree">show all</a>
|
81
|
+
|
82
|
+
</dd>
|
83
|
+
</dl>
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
<dl>
|
96
|
+
<dt>Defined in:</dt>
|
97
|
+
<dd>lib/tasker/telemetry/metric_types.rb</dd>
|
98
|
+
</dl>
|
99
|
+
|
100
|
+
</div>
|
101
|
+
|
102
|
+
<h2>Overview</h2><div class="docstring">
|
103
|
+
<div class="discussion">
|
104
|
+
|
105
|
+
<p>Histogram represents a metric that samples observations and counts them in buckets</p>
|
106
|
+
|
107
|
+
<p>Histograms are thread-safe and provide statistical analysis of observed values. They track count, sum, and bucket distributions for duration and size metrics.</p>
|
108
|
+
|
109
|
+
|
110
|
+
</div>
|
111
|
+
</div>
|
112
|
+
<div class="tags">
|
113
|
+
|
114
|
+
<div class="examples">
|
115
|
+
<h4 class="tag_title">Examples:</h4>
|
116
|
+
|
117
|
+
|
118
|
+
<h5 class="example_title"><div class='inline'>
|
119
|
+
<p>Production usage</p>
|
120
|
+
</div></h5>
|
121
|
+
|
122
|
+
<pre class="example code"><code><span class='id identifier rubyid_histogram'>histogram</span> <span class='op'>=</span> <span class='const'>Histogram</span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="#initialize-instance_method" title="Tasker::Telemetry::MetricTypes::Histogram#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>task_duration_seconds</span><span class='tstring_end'>'</span></span><span class='comma'>,</span> <span class='label'>buckets:</span> <span class='lbracket'>[</span><span class='float'>0.1</span><span class='comma'>,</span> <span class='float'>0.5</span><span class='comma'>,</span> <span class='float'>1.0</span><span class='comma'>,</span> <span class='float'>5.0</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
123
|
+
<span class='id identifier rubyid_histogram'>histogram</span><span class='period'>.</span><span class='id identifier rubyid_observe'>observe</span><span class='lparen'>(</span><span class='float'>0.45</span><span class='rparen'>)</span> <span class='comment'># Record a 0.45 second duration
|
124
|
+
</span><span class='id identifier rubyid_histogram'>histogram</span><span class='period'>.</span><span class='id identifier rubyid_observe'>observe</span><span class='lparen'>(</span><span class='float'>2.1</span><span class='rparen'>)</span> <span class='comment'># Record a 2.1 second duration
|
125
|
+
</span><span class='id identifier rubyid_histogram'>histogram</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span> <span class='comment'># Total observations
|
126
|
+
</span><span class='id identifier rubyid_histogram'>histogram</span><span class='period'>.</span><span class='id identifier rubyid_sum'>sum</span> <span class='comment'># Sum of all observed values
|
127
|
+
</span><span class='id identifier rubyid_histogram'>histogram</span><span class='period'>.</span><span class='id identifier rubyid_buckets'>buckets</span> <span class='comment'># Bucket counts</span></code></pre>
|
128
|
+
|
129
|
+
</div>
|
130
|
+
|
131
|
+
|
132
|
+
</div>
|
133
|
+
|
134
|
+
<h2>
|
135
|
+
Constant Summary
|
136
|
+
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
|
137
|
+
</h2>
|
138
|
+
|
139
|
+
<dl class="constants">
|
140
|
+
|
141
|
+
<dt id="DEFAULT_BUCKETS-constant" class="">DEFAULT_BUCKETS =
|
142
|
+
<div class="docstring">
|
143
|
+
<div class="discussion">
|
144
|
+
|
145
|
+
<p>Default bucket boundaries for duration metrics (in seconds)</p>
|
146
|
+
|
147
|
+
|
148
|
+
</div>
|
149
|
+
</div>
|
150
|
+
<div class="tags">
|
151
|
+
|
152
|
+
|
153
|
+
</div>
|
154
|
+
</dt>
|
155
|
+
<dd><pre class="code"><span class='lbracket'>[</span><span class='float'>0.005</span><span class='comma'>,</span> <span class='float'>0.01</span><span class='comma'>,</span> <span class='float'>0.025</span><span class='comma'>,</span> <span class='float'>0.05</span><span class='comma'>,</span> <span class='float'>0.1</span><span class='comma'>,</span> <span class='float'>0.25</span><span class='comma'>,</span> <span class='float'>0.5</span><span class='comma'>,</span> <span class='float'>1.0</span><span class='comma'>,</span> <span class='float'>2.5</span><span class='comma'>,</span> <span class='float'>5.0</span><span class='comma'>,</span> <span class='float'>10.0</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
156
|
+
|
157
|
+
</dl>
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
|
164
|
+
<ul class="summary">
|
165
|
+
|
166
|
+
<li class="public ">
|
167
|
+
<span class="summary_signature">
|
168
|
+
|
169
|
+
<a href="#bucket_boundaries-instance_method" title="#bucket_boundaries (instance method)">#<strong>bucket_boundaries</strong> ⇒ Array<Numeric> </a>
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
</span>
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
|
178
|
+
<span class="note title readonly">readonly</span>
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
<span class="summary_desc"><div class='inline'>
|
189
|
+
<p>The histogram bucket boundaries.</p>
|
190
|
+
</div></span>
|
191
|
+
|
192
|
+
</li>
|
193
|
+
|
194
|
+
|
195
|
+
<li class="public ">
|
196
|
+
<span class="summary_signature">
|
197
|
+
|
198
|
+
<a href="#created_at-instance_method" title="#created_at (instance method)">#<strong>created_at</strong> ⇒ Time </a>
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
</span>
|
203
|
+
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
<span class="note title readonly">readonly</span>
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
<span class="summary_desc"><div class='inline'>
|
218
|
+
<p>When this metric was first created.</p>
|
219
|
+
</div></span>
|
220
|
+
|
221
|
+
</li>
|
222
|
+
|
223
|
+
|
224
|
+
<li class="public ">
|
225
|
+
<span class="summary_signature">
|
226
|
+
|
227
|
+
<a href="#labels-instance_method" title="#labels (instance method)">#<strong>labels</strong> ⇒ Hash </a>
|
228
|
+
|
229
|
+
|
230
|
+
|
231
|
+
</span>
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
<span class="note title readonly">readonly</span>
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
|
246
|
+
<span class="summary_desc"><div class='inline'>
|
247
|
+
<p>The metric labels for dimensional data.</p>
|
248
|
+
</div></span>
|
249
|
+
|
250
|
+
</li>
|
251
|
+
|
252
|
+
|
253
|
+
<li class="public ">
|
254
|
+
<span class="summary_signature">
|
255
|
+
|
256
|
+
<a href="#name-instance_method" title="#name (instance method)">#<strong>name</strong> ⇒ String </a>
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
</span>
|
261
|
+
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
<span class="note title readonly">readonly</span>
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
<span class="summary_desc"><div class='inline'>
|
276
|
+
<p>The metric name.</p>
|
277
|
+
</div></span>
|
278
|
+
|
279
|
+
</li>
|
280
|
+
|
281
|
+
|
282
|
+
</ul>
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
|
288
|
+
<h2>
|
289
|
+
Instance Method Summary
|
290
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
291
|
+
</h2>
|
292
|
+
|
293
|
+
<ul class="summary">
|
294
|
+
|
295
|
+
<li class="public ">
|
296
|
+
<span class="summary_signature">
|
297
|
+
|
298
|
+
<a href="#average-instance_method" title="#average (instance method)">#<strong>average</strong> ⇒ Float </a>
|
299
|
+
|
300
|
+
|
301
|
+
|
302
|
+
</span>
|
303
|
+
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
|
312
|
+
<span class="summary_desc"><div class='inline'>
|
313
|
+
<p>Calculate the average of observed values.</p>
|
314
|
+
</div></span>
|
315
|
+
|
316
|
+
</li>
|
317
|
+
|
318
|
+
|
319
|
+
<li class="public ">
|
320
|
+
<span class="summary_signature">
|
321
|
+
|
322
|
+
<a href="#buckets-instance_method" title="#buckets (instance method)">#<strong>buckets</strong> ⇒ Hash </a>
|
323
|
+
|
324
|
+
|
325
|
+
|
326
|
+
</span>
|
327
|
+
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
|
336
|
+
<span class="summary_desc"><div class='inline'>
|
337
|
+
<p>Get the current bucket counts.</p>
|
338
|
+
</div></span>
|
339
|
+
|
340
|
+
</li>
|
341
|
+
|
342
|
+
|
343
|
+
<li class="public ">
|
344
|
+
<span class="summary_signature">
|
345
|
+
|
346
|
+
<a href="#count-instance_method" title="#count (instance method)">#<strong>count</strong> ⇒ Integer </a>
|
347
|
+
|
348
|
+
|
349
|
+
|
350
|
+
</span>
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
|
360
|
+
<span class="summary_desc"><div class='inline'>
|
361
|
+
<p>Get the total number of observations.</p>
|
362
|
+
</div></span>
|
363
|
+
|
364
|
+
</li>
|
365
|
+
|
366
|
+
|
367
|
+
<li class="public ">
|
368
|
+
<span class="summary_signature">
|
369
|
+
|
370
|
+
<a href="#description-instance_method" title="#description (instance method)">#<strong>description</strong> ⇒ String </a>
|
371
|
+
|
372
|
+
|
373
|
+
|
374
|
+
</span>
|
375
|
+
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
|
384
|
+
<span class="summary_desc"><div class='inline'>
|
385
|
+
<p>Get a description of this metric for debugging.</p>
|
386
|
+
</div></span>
|
387
|
+
|
388
|
+
</li>
|
389
|
+
|
390
|
+
|
391
|
+
<li class="public ">
|
392
|
+
<span class="summary_signature">
|
393
|
+
|
394
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(name, labels: {}, buckets: DEFAULT_BUCKETS) ⇒ Histogram </a>
|
395
|
+
|
396
|
+
|
397
|
+
|
398
|
+
</span>
|
399
|
+
|
400
|
+
|
401
|
+
<span class="note title constructor">constructor</span>
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
|
408
|
+
|
409
|
+
|
410
|
+
<span class="summary_desc"><div class='inline'>
|
411
|
+
<p>Initialize a new histogram metric.</p>
|
412
|
+
</div></span>
|
413
|
+
|
414
|
+
</li>
|
415
|
+
|
416
|
+
|
417
|
+
<li class="public ">
|
418
|
+
<span class="summary_signature">
|
419
|
+
|
420
|
+
<a href="#observe-instance_method" title="#observe (instance method)">#<strong>observe</strong>(value) ⇒ Numeric </a>
|
421
|
+
|
422
|
+
|
423
|
+
|
424
|
+
</span>
|
425
|
+
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
|
432
|
+
|
433
|
+
|
434
|
+
<span class="summary_desc"><div class='inline'>
|
435
|
+
<p>Observe a value and update histogram buckets.</p>
|
436
|
+
</div></span>
|
437
|
+
|
438
|
+
</li>
|
439
|
+
|
440
|
+
|
441
|
+
<li class="public ">
|
442
|
+
<span class="summary_signature">
|
443
|
+
|
444
|
+
<a href="#reset!-instance_method" title="#reset! (instance method)">#<strong>reset!</strong> ⇒ void </a>
|
445
|
+
|
446
|
+
|
447
|
+
|
448
|
+
</span>
|
449
|
+
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
|
455
|
+
|
456
|
+
|
457
|
+
|
458
|
+
<span class="summary_desc"><div class='inline'>
|
459
|
+
<p>Reset the histogram (primarily for testing).</p>
|
460
|
+
</div></span>
|
461
|
+
|
462
|
+
</li>
|
463
|
+
|
464
|
+
|
465
|
+
<li class="public ">
|
466
|
+
<span class="summary_signature">
|
467
|
+
|
468
|
+
<a href="#sum-instance_method" title="#sum (instance method)">#<strong>sum</strong> ⇒ Numeric </a>
|
469
|
+
|
470
|
+
|
471
|
+
|
472
|
+
</span>
|
473
|
+
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
|
479
|
+
|
480
|
+
|
481
|
+
|
482
|
+
<span class="summary_desc"><div class='inline'>
|
483
|
+
<p>Get the sum of all observed values.</p>
|
484
|
+
</div></span>
|
485
|
+
|
486
|
+
</li>
|
487
|
+
|
488
|
+
|
489
|
+
<li class="public ">
|
490
|
+
<span class="summary_signature">
|
491
|
+
|
492
|
+
<a href="#to_h-instance_method" title="#to_h (instance method)">#<strong>to_h</strong> ⇒ Hash </a>
|
493
|
+
|
494
|
+
|
495
|
+
|
496
|
+
</span>
|
497
|
+
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
<span class="summary_desc"><div class='inline'>
|
507
|
+
<p>Get a hash representation of this metric.</p>
|
508
|
+
</div></span>
|
509
|
+
|
510
|
+
</li>
|
511
|
+
|
512
|
+
|
513
|
+
</ul>
|
514
|
+
|
515
|
+
|
516
|
+
<div id="constructor_details" class="method_details_list">
|
517
|
+
<h2>Constructor Details</h2>
|
518
|
+
|
519
|
+
<div class="method_details first">
|
520
|
+
<h3 class="signature first" id="initialize-instance_method">
|
521
|
+
|
522
|
+
#<strong>initialize</strong>(name, labels: {}, buckets: DEFAULT_BUCKETS) ⇒ <tt><span class='object_link'><a href="" title="Tasker::Telemetry::MetricTypes::Histogram (class)">Histogram</a></span></tt>
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
|
528
|
+
</h3><div class="docstring">
|
529
|
+
<div class="discussion">
|
530
|
+
|
531
|
+
<p>Initialize a new histogram metric</p>
|
532
|
+
|
533
|
+
|
534
|
+
</div>
|
535
|
+
</div>
|
536
|
+
<div class="tags">
|
537
|
+
<p class="tag_title">Parameters:</p>
|
538
|
+
<ul class="param">
|
539
|
+
|
540
|
+
<li>
|
541
|
+
|
542
|
+
<span class='name'>name</span>
|
543
|
+
|
544
|
+
|
545
|
+
<span class='type'>(<tt>String</tt>)</span>
|
546
|
+
|
547
|
+
|
548
|
+
|
549
|
+
—
|
550
|
+
<div class='inline'>
|
551
|
+
<p>The metric name (must be present)</p>
|
552
|
+
</div>
|
553
|
+
|
554
|
+
</li>
|
555
|
+
|
556
|
+
<li>
|
557
|
+
|
558
|
+
<span class='name'>labels</span>
|
559
|
+
|
560
|
+
|
561
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
562
|
+
|
563
|
+
|
564
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
565
|
+
|
566
|
+
|
567
|
+
—
|
568
|
+
<div class='inline'>
|
569
|
+
<p>Optional labels for dimensional metrics</p>
|
570
|
+
</div>
|
571
|
+
|
572
|
+
</li>
|
573
|
+
|
574
|
+
<li>
|
575
|
+
|
576
|
+
<span class='name'>buckets</span>
|
577
|
+
|
578
|
+
|
579
|
+
<span class='type'>(<tt>Array<Numeric></tt>)</span>
|
580
|
+
|
581
|
+
|
582
|
+
<em class="default">(defaults to: <tt>DEFAULT_BUCKETS</tt>)</em>
|
583
|
+
|
584
|
+
|
585
|
+
—
|
586
|
+
<div class='inline'>
|
587
|
+
<p>Bucket boundaries (must be sorted ascending)</p>
|
588
|
+
</div>
|
589
|
+
|
590
|
+
</li>
|
591
|
+
|
592
|
+
</ul>
|
593
|
+
|
594
|
+
<p class="tag_title">Raises:</p>
|
595
|
+
<ul class="raise">
|
596
|
+
|
597
|
+
<li>
|
598
|
+
|
599
|
+
|
600
|
+
<span class='type'>(<tt>ArgumentError</tt>)</span>
|
601
|
+
|
602
|
+
|
603
|
+
|
604
|
+
—
|
605
|
+
<div class='inline'>
|
606
|
+
<p>If name is nil/empty or buckets are invalid</p>
|
607
|
+
</div>
|
608
|
+
|
609
|
+
</li>
|
610
|
+
|
611
|
+
</ul>
|
612
|
+
|
613
|
+
</div><table class="source_code">
|
614
|
+
<tr>
|
615
|
+
<td>
|
616
|
+
<pre class="lines">
|
617
|
+
|
618
|
+
|
619
|
+
255
|
620
|
+
256
|
621
|
+
257
|
622
|
+
258
|
623
|
+
259
|
624
|
+
260
|
625
|
+
261
|
626
|
+
262
|
627
|
+
263
|
628
|
+
264
|
629
|
+
265
|
630
|
+
266
|
631
|
+
267
|
632
|
+
268
|
633
|
+
269
|
634
|
+
270
|
635
|
+
271
|
636
|
+
272</pre>
|
637
|
+
</td>
|
638
|
+
<td>
|
639
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 255</span>
|
640
|
+
|
641
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='label'>labels:</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='label'>buckets:</span> <span class='const'><span class='object_link'><a href="#DEFAULT_BUCKETS-constant" title="Tasker::Telemetry::MetricTypes::Histogram::DEFAULT_BUCKETS (constant)">DEFAULT_BUCKETS</a></span></span><span class='rparen'>)</span>
|
642
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Metric name cannot be nil or empty</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>||</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
643
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Buckets must be an array</span><span class='tstring_end'>'</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_buckets'>buckets</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Array</span><span class='rparen'>)</span>
|
644
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Buckets cannot be empty</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_buckets'>buckets</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
645
|
+
|
646
|
+
<span class='ivar'>@name</span> <span class='op'>=</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span>
|
647
|
+
<span class='ivar'>@labels</span> <span class='op'>=</span> <span class='id identifier rubyid_labels'>labels</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span>
|
648
|
+
<span class='ivar'>@bucket_boundaries</span> <span class='op'>=</span> <span class='id identifier rubyid_buckets'>buckets</span><span class='period'>.</span><span class='id identifier rubyid_sort'>sort</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span>
|
649
|
+
<span class='ivar'>@created_at</span> <span class='op'>=</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_current'>current</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span>
|
650
|
+
|
651
|
+
<span class='comment'># Thread-safe counters for each bucket + infinity bucket
|
652
|
+
</span> <span class='ivar'>@bucket_counts</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='ivar'>@bucket_boundaries</span> <span class='op'>+</span> <span class='lbracket'>[</span><span class='const'>Float</span><span class='op'>::</span><span class='const'>INFINITY</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid__'>_</span><span class='op'>|</span>
|
653
|
+
<span class='const'>Concurrent</span><span class='op'>::</span><span class='const'>AtomicFixnum</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
|
654
|
+
<span class='kw'>end</span>
|
655
|
+
|
656
|
+
<span class='ivar'>@count</span> <span class='op'>=</span> <span class='const'>Concurrent</span><span class='op'>::</span><span class='const'>AtomicFixnum</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
|
657
|
+
<span class='ivar'>@sum</span> <span class='op'>=</span> <span class='const'>Concurrent</span><span class='op'>::</span><span class='const'>AtomicReference</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='float'>0.0</span><span class='rparen'>)</span>
|
658
|
+
<span class='kw'>end</span></pre>
|
659
|
+
</td>
|
660
|
+
</tr>
|
661
|
+
</table>
|
662
|
+
</div>
|
663
|
+
|
664
|
+
</div>
|
665
|
+
|
666
|
+
<div id="instance_attr_details" class="attr_details">
|
667
|
+
<h2>Instance Attribute Details</h2>
|
668
|
+
|
669
|
+
|
670
|
+
<span id=""></span>
|
671
|
+
<div class="method_details first">
|
672
|
+
<h3 class="signature first" id="bucket_boundaries-instance_method">
|
673
|
+
|
674
|
+
#<strong>bucket_boundaries</strong> ⇒ <tt>Array<Numeric></tt> <span class="extras">(readonly)</span>
|
675
|
+
|
676
|
+
|
677
|
+
|
678
|
+
|
679
|
+
|
680
|
+
</h3><div class="docstring">
|
681
|
+
<div class="discussion">
|
682
|
+
|
683
|
+
<p>Returns The histogram bucket boundaries.</p>
|
684
|
+
|
685
|
+
|
686
|
+
</div>
|
687
|
+
</div>
|
688
|
+
<div class="tags">
|
689
|
+
|
690
|
+
<p class="tag_title">Returns:</p>
|
691
|
+
<ul class="return">
|
692
|
+
|
693
|
+
<li>
|
694
|
+
|
695
|
+
|
696
|
+
<span class='type'>(<tt>Array<Numeric></tt>)</span>
|
697
|
+
|
698
|
+
|
699
|
+
|
700
|
+
—
|
701
|
+
<div class='inline'>
|
702
|
+
<p>The histogram bucket boundaries</p>
|
703
|
+
</div>
|
704
|
+
|
705
|
+
</li>
|
706
|
+
|
707
|
+
</ul>
|
708
|
+
|
709
|
+
</div><table class="source_code">
|
710
|
+
<tr>
|
711
|
+
<td>
|
712
|
+
<pre class="lines">
|
713
|
+
|
714
|
+
|
715
|
+
241
|
716
|
+
242
|
717
|
+
243</pre>
|
718
|
+
</td>
|
719
|
+
<td>
|
720
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 241</span>
|
721
|
+
|
722
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_bucket_boundaries'>bucket_boundaries</span>
|
723
|
+
<span class='ivar'>@bucket_boundaries</span>
|
724
|
+
<span class='kw'>end</span></pre>
|
725
|
+
</td>
|
726
|
+
</tr>
|
727
|
+
</table>
|
728
|
+
</div>
|
729
|
+
|
730
|
+
|
731
|
+
<span id=""></span>
|
732
|
+
<div class="method_details ">
|
733
|
+
<h3 class="signature " id="created_at-instance_method">
|
734
|
+
|
735
|
+
#<strong>created_at</strong> ⇒ <tt>Time</tt> <span class="extras">(readonly)</span>
|
736
|
+
|
737
|
+
|
738
|
+
|
739
|
+
|
740
|
+
|
741
|
+
</h3><div class="docstring">
|
742
|
+
<div class="discussion">
|
743
|
+
|
744
|
+
<p>Returns When this metric was first created.</p>
|
745
|
+
|
746
|
+
|
747
|
+
</div>
|
748
|
+
</div>
|
749
|
+
<div class="tags">
|
750
|
+
|
751
|
+
<p class="tag_title">Returns:</p>
|
752
|
+
<ul class="return">
|
753
|
+
|
754
|
+
<li>
|
755
|
+
|
756
|
+
|
757
|
+
<span class='type'>(<tt>Time</tt>)</span>
|
758
|
+
|
759
|
+
|
760
|
+
|
761
|
+
—
|
762
|
+
<div class='inline'>
|
763
|
+
<p>When this metric was first created</p>
|
764
|
+
</div>
|
765
|
+
|
766
|
+
</li>
|
767
|
+
|
768
|
+
</ul>
|
769
|
+
|
770
|
+
</div><table class="source_code">
|
771
|
+
<tr>
|
772
|
+
<td>
|
773
|
+
<pre class="lines">
|
774
|
+
|
775
|
+
|
776
|
+
244
|
777
|
+
245
|
778
|
+
246</pre>
|
779
|
+
</td>
|
780
|
+
<td>
|
781
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 244</span>
|
782
|
+
|
783
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_created_at'>created_at</span>
|
784
|
+
<span class='ivar'>@created_at</span>
|
785
|
+
<span class='kw'>end</span></pre>
|
786
|
+
</td>
|
787
|
+
</tr>
|
788
|
+
</table>
|
789
|
+
</div>
|
790
|
+
|
791
|
+
|
792
|
+
<span id=""></span>
|
793
|
+
<div class="method_details ">
|
794
|
+
<h3 class="signature " id="labels-instance_method">
|
795
|
+
|
796
|
+
#<strong>labels</strong> ⇒ <tt>Hash</tt> <span class="extras">(readonly)</span>
|
797
|
+
|
798
|
+
|
799
|
+
|
800
|
+
|
801
|
+
|
802
|
+
</h3><div class="docstring">
|
803
|
+
<div class="discussion">
|
804
|
+
|
805
|
+
<p>Returns The metric labels for dimensional data.</p>
|
806
|
+
|
807
|
+
|
808
|
+
</div>
|
809
|
+
</div>
|
810
|
+
<div class="tags">
|
811
|
+
|
812
|
+
<p class="tag_title">Returns:</p>
|
813
|
+
<ul class="return">
|
814
|
+
|
815
|
+
<li>
|
816
|
+
|
817
|
+
|
818
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
819
|
+
|
820
|
+
|
821
|
+
|
822
|
+
—
|
823
|
+
<div class='inline'>
|
824
|
+
<p>The metric labels for dimensional data</p>
|
825
|
+
</div>
|
826
|
+
|
827
|
+
</li>
|
828
|
+
|
829
|
+
</ul>
|
830
|
+
|
831
|
+
</div><table class="source_code">
|
832
|
+
<tr>
|
833
|
+
<td>
|
834
|
+
<pre class="lines">
|
835
|
+
|
836
|
+
|
837
|
+
238
|
838
|
+
239
|
839
|
+
240</pre>
|
840
|
+
</td>
|
841
|
+
<td>
|
842
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 238</span>
|
843
|
+
|
844
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_labels'>labels</span>
|
845
|
+
<span class='ivar'>@labels</span>
|
846
|
+
<span class='kw'>end</span></pre>
|
847
|
+
</td>
|
848
|
+
</tr>
|
849
|
+
</table>
|
850
|
+
</div>
|
851
|
+
|
852
|
+
|
853
|
+
<span id=""></span>
|
854
|
+
<div class="method_details ">
|
855
|
+
<h3 class="signature " id="name-instance_method">
|
856
|
+
|
857
|
+
#<strong>name</strong> ⇒ <tt>String</tt> <span class="extras">(readonly)</span>
|
858
|
+
|
859
|
+
|
860
|
+
|
861
|
+
|
862
|
+
|
863
|
+
</h3><div class="docstring">
|
864
|
+
<div class="discussion">
|
865
|
+
|
866
|
+
<p>Returns The metric name.</p>
|
867
|
+
|
868
|
+
|
869
|
+
</div>
|
870
|
+
</div>
|
871
|
+
<div class="tags">
|
872
|
+
|
873
|
+
<p class="tag_title">Returns:</p>
|
874
|
+
<ul class="return">
|
875
|
+
|
876
|
+
<li>
|
877
|
+
|
878
|
+
|
879
|
+
<span class='type'>(<tt>String</tt>)</span>
|
880
|
+
|
881
|
+
|
882
|
+
|
883
|
+
—
|
884
|
+
<div class='inline'>
|
885
|
+
<p>The metric name</p>
|
886
|
+
</div>
|
887
|
+
|
888
|
+
</li>
|
889
|
+
|
890
|
+
</ul>
|
891
|
+
|
892
|
+
</div><table class="source_code">
|
893
|
+
<tr>
|
894
|
+
<td>
|
895
|
+
<pre class="lines">
|
896
|
+
|
897
|
+
|
898
|
+
235
|
899
|
+
236
|
900
|
+
237</pre>
|
901
|
+
</td>
|
902
|
+
<td>
|
903
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 235</span>
|
904
|
+
|
905
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_name'>name</span>
|
906
|
+
<span class='ivar'>@name</span>
|
907
|
+
<span class='kw'>end</span></pre>
|
908
|
+
</td>
|
909
|
+
</tr>
|
910
|
+
</table>
|
911
|
+
</div>
|
912
|
+
|
913
|
+
</div>
|
914
|
+
|
915
|
+
|
916
|
+
<div id="instance_method_details" class="method_details_list">
|
917
|
+
<h2>Instance Method Details</h2>
|
918
|
+
|
919
|
+
|
920
|
+
<div class="method_details first">
|
921
|
+
<h3 class="signature first" id="average-instance_method">
|
922
|
+
|
923
|
+
#<strong>average</strong> ⇒ <tt>Float</tt>
|
924
|
+
|
925
|
+
|
926
|
+
|
927
|
+
|
928
|
+
|
929
|
+
</h3><div class="docstring">
|
930
|
+
<div class="discussion">
|
931
|
+
|
932
|
+
<p>Calculate the average of observed values</p>
|
933
|
+
|
934
|
+
|
935
|
+
</div>
|
936
|
+
</div>
|
937
|
+
<div class="tags">
|
938
|
+
|
939
|
+
<p class="tag_title">Returns:</p>
|
940
|
+
<ul class="return">
|
941
|
+
|
942
|
+
<li>
|
943
|
+
|
944
|
+
|
945
|
+
<span class='type'>(<tt>Float</tt>)</span>
|
946
|
+
|
947
|
+
|
948
|
+
|
949
|
+
—
|
950
|
+
<div class='inline'>
|
951
|
+
<p>Average value, or 0.0 if no observations</p>
|
952
|
+
</div>
|
953
|
+
|
954
|
+
</li>
|
955
|
+
|
956
|
+
</ul>
|
957
|
+
|
958
|
+
</div><table class="source_code">
|
959
|
+
<tr>
|
960
|
+
<td>
|
961
|
+
<pre class="lines">
|
962
|
+
|
963
|
+
|
964
|
+
326
|
965
|
+
327
|
966
|
+
328
|
967
|
+
329
|
968
|
+
330
|
969
|
+
331</pre>
|
970
|
+
</td>
|
971
|
+
<td>
|
972
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 326</span>
|
973
|
+
|
974
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_average'>average</span>
|
975
|
+
<span class='id identifier rubyid_current_count'>current_count</span> <span class='op'>=</span> <span class='id identifier rubyid_count'>count</span>
|
976
|
+
<span class='kw'>return</span> <span class='float'>0.0</span> <span class='kw'>if</span> <span class='id identifier rubyid_current_count'>current_count</span><span class='period'>.</span><span class='id identifier rubyid_zero?'>zero?</span>
|
977
|
+
|
978
|
+
<span class='id identifier rubyid_sum'>sum</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>/</span> <span class='id identifier rubyid_current_count'>current_count</span>
|
979
|
+
<span class='kw'>end</span></pre>
|
980
|
+
</td>
|
981
|
+
</tr>
|
982
|
+
</table>
|
983
|
+
</div>
|
984
|
+
|
985
|
+
<div class="method_details ">
|
986
|
+
<h3 class="signature " id="buckets-instance_method">
|
987
|
+
|
988
|
+
#<strong>buckets</strong> ⇒ <tt>Hash</tt>
|
989
|
+
|
990
|
+
|
991
|
+
|
992
|
+
|
993
|
+
|
994
|
+
</h3><div class="docstring">
|
995
|
+
<div class="discussion">
|
996
|
+
|
997
|
+
<p>Get the current bucket counts</p>
|
998
|
+
|
999
|
+
|
1000
|
+
</div>
|
1001
|
+
</div>
|
1002
|
+
<div class="tags">
|
1003
|
+
|
1004
|
+
<p class="tag_title">Returns:</p>
|
1005
|
+
<ul class="return">
|
1006
|
+
|
1007
|
+
<li>
|
1008
|
+
|
1009
|
+
|
1010
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1011
|
+
|
1012
|
+
|
1013
|
+
|
1014
|
+
—
|
1015
|
+
<div class='inline'>
|
1016
|
+
<p>Bucket boundaries to counts mapping</p>
|
1017
|
+
</div>
|
1018
|
+
|
1019
|
+
</li>
|
1020
|
+
|
1021
|
+
</ul>
|
1022
|
+
|
1023
|
+
</div><table class="source_code">
|
1024
|
+
<tr>
|
1025
|
+
<td>
|
1026
|
+
<pre class="lines">
|
1027
|
+
|
1028
|
+
|
1029
|
+
314
|
1030
|
+
315
|
1031
|
+
316
|
1032
|
+
317
|
1033
|
+
318
|
1034
|
+
319
|
1035
|
+
320
|
1036
|
+
321</pre>
|
1037
|
+
</td>
|
1038
|
+
<td>
|
1039
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 314</span>
|
1040
|
+
|
1041
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_buckets'>buckets</span>
|
1042
|
+
<span class='id identifier rubyid_result'>result</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
1043
|
+
<span class='ivar'>@bucket_boundaries</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_boundary'>boundary</span><span class='comma'>,</span> <span class='id identifier rubyid_index'>index</span><span class='op'>|</span>
|
1044
|
+
<span class='id identifier rubyid_result'>result</span><span class='lbracket'>[</span><span class='id identifier rubyid_boundary'>boundary</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@bucket_counts</span><span class='lbracket'>[</span><span class='id identifier rubyid_index'>index</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
|
1045
|
+
<span class='kw'>end</span>
|
1046
|
+
<span class='id identifier rubyid_result'>result</span><span class='lbracket'>[</span><span class='const'>Float</span><span class='op'>::</span><span class='const'>INFINITY</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='ivar'>@bucket_counts</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
|
1047
|
+
<span class='id identifier rubyid_result'>result</span>
|
1048
|
+
<span class='kw'>end</span></pre>
|
1049
|
+
</td>
|
1050
|
+
</tr>
|
1051
|
+
</table>
|
1052
|
+
</div>
|
1053
|
+
|
1054
|
+
<div class="method_details ">
|
1055
|
+
<h3 class="signature " id="count-instance_method">
|
1056
|
+
|
1057
|
+
#<strong>count</strong> ⇒ <tt>Integer</tt>
|
1058
|
+
|
1059
|
+
|
1060
|
+
|
1061
|
+
|
1062
|
+
|
1063
|
+
</h3><div class="docstring">
|
1064
|
+
<div class="discussion">
|
1065
|
+
|
1066
|
+
<p>Get the total number of observations</p>
|
1067
|
+
|
1068
|
+
|
1069
|
+
</div>
|
1070
|
+
</div>
|
1071
|
+
<div class="tags">
|
1072
|
+
|
1073
|
+
<p class="tag_title">Returns:</p>
|
1074
|
+
<ul class="return">
|
1075
|
+
|
1076
|
+
<li>
|
1077
|
+
|
1078
|
+
|
1079
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1080
|
+
|
1081
|
+
|
1082
|
+
|
1083
|
+
—
|
1084
|
+
<div class='inline'>
|
1085
|
+
<p>Total observation count</p>
|
1086
|
+
</div>
|
1087
|
+
|
1088
|
+
</li>
|
1089
|
+
|
1090
|
+
</ul>
|
1091
|
+
|
1092
|
+
</div><table class="source_code">
|
1093
|
+
<tr>
|
1094
|
+
<td>
|
1095
|
+
<pre class="lines">
|
1096
|
+
|
1097
|
+
|
1098
|
+
300
|
1099
|
+
301
|
1100
|
+
302</pre>
|
1101
|
+
</td>
|
1102
|
+
<td>
|
1103
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 300</span>
|
1104
|
+
|
1105
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_count'>count</span>
|
1106
|
+
<span class='ivar'>@count</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span>
|
1107
|
+
<span class='kw'>end</span></pre>
|
1108
|
+
</td>
|
1109
|
+
</tr>
|
1110
|
+
</table>
|
1111
|
+
</div>
|
1112
|
+
|
1113
|
+
<div class="method_details ">
|
1114
|
+
<h3 class="signature " id="description-instance_method">
|
1115
|
+
|
1116
|
+
#<strong>description</strong> ⇒ <tt>String</tt>
|
1117
|
+
|
1118
|
+
|
1119
|
+
|
1120
|
+
|
1121
|
+
|
1122
|
+
</h3><div class="docstring">
|
1123
|
+
<div class="discussion">
|
1124
|
+
|
1125
|
+
<p>Get a description of this metric for debugging</p>
|
1126
|
+
|
1127
|
+
|
1128
|
+
</div>
|
1129
|
+
</div>
|
1130
|
+
<div class="tags">
|
1131
|
+
|
1132
|
+
<p class="tag_title">Returns:</p>
|
1133
|
+
<ul class="return">
|
1134
|
+
|
1135
|
+
<li>
|
1136
|
+
|
1137
|
+
|
1138
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1139
|
+
|
1140
|
+
|
1141
|
+
|
1142
|
+
—
|
1143
|
+
<div class='inline'>
|
1144
|
+
<p>Human-readable description</p>
|
1145
|
+
</div>
|
1146
|
+
|
1147
|
+
</li>
|
1148
|
+
|
1149
|
+
</ul>
|
1150
|
+
|
1151
|
+
</div><table class="source_code">
|
1152
|
+
<tr>
|
1153
|
+
<td>
|
1154
|
+
<pre class="lines">
|
1155
|
+
|
1156
|
+
|
1157
|
+
352
|
1158
|
+
353
|
1159
|
+
354
|
1160
|
+
355</pre>
|
1161
|
+
</td>
|
1162
|
+
<td>
|
1163
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 352</span>
|
1164
|
+
|
1165
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_description'>description</span>
|
1166
|
+
<span class='id identifier rubyid_label_str'>label_str</span> <span class='op'>=</span> <span class='id identifier rubyid_labels'>labels</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span> <span class='op'>:</span> <span class='id identifier rubyid_labels'>labels</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span>
|
1167
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_name'>name</span><span class='embexpr_end'>}</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_label_str'>label_str</span><span class='embexpr_end'>}</span><span class='tstring_content'> = </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_count'>count</span><span class='embexpr_end'>}</span><span class='tstring_content'> observations, avg: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_average'>average</span><span class='period'>.</span><span class='id identifier rubyid_round'>round</span><span class='lparen'>(</span><span class='int'>3</span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'> (histogram)</span><span class='tstring_end'>"</span></span>
|
1168
|
+
<span class='kw'>end</span></pre>
|
1169
|
+
</td>
|
1170
|
+
</tr>
|
1171
|
+
</table>
|
1172
|
+
</div>
|
1173
|
+
|
1174
|
+
<div class="method_details ">
|
1175
|
+
<h3 class="signature " id="observe-instance_method">
|
1176
|
+
|
1177
|
+
#<strong>observe</strong>(value) ⇒ <tt>Numeric</tt>
|
1178
|
+
|
1179
|
+
|
1180
|
+
|
1181
|
+
|
1182
|
+
|
1183
|
+
</h3><div class="docstring">
|
1184
|
+
<div class="discussion">
|
1185
|
+
|
1186
|
+
<p>Observe a value and update histogram buckets</p>
|
1187
|
+
|
1188
|
+
|
1189
|
+
</div>
|
1190
|
+
</div>
|
1191
|
+
<div class="tags">
|
1192
|
+
<p class="tag_title">Parameters:</p>
|
1193
|
+
<ul class="param">
|
1194
|
+
|
1195
|
+
<li>
|
1196
|
+
|
1197
|
+
<span class='name'>value</span>
|
1198
|
+
|
1199
|
+
|
1200
|
+
<span class='type'>(<tt>Numeric</tt>)</span>
|
1201
|
+
|
1202
|
+
|
1203
|
+
|
1204
|
+
—
|
1205
|
+
<div class='inline'>
|
1206
|
+
<p>The observed value</p>
|
1207
|
+
</div>
|
1208
|
+
|
1209
|
+
</li>
|
1210
|
+
|
1211
|
+
</ul>
|
1212
|
+
|
1213
|
+
<p class="tag_title">Returns:</p>
|
1214
|
+
<ul class="return">
|
1215
|
+
|
1216
|
+
<li>
|
1217
|
+
|
1218
|
+
|
1219
|
+
<span class='type'>(<tt>Numeric</tt>)</span>
|
1220
|
+
|
1221
|
+
|
1222
|
+
|
1223
|
+
—
|
1224
|
+
<div class='inline'>
|
1225
|
+
<p>The observed value (for chaining)</p>
|
1226
|
+
</div>
|
1227
|
+
|
1228
|
+
</li>
|
1229
|
+
|
1230
|
+
</ul>
|
1231
|
+
<p class="tag_title">Raises:</p>
|
1232
|
+
<ul class="raise">
|
1233
|
+
|
1234
|
+
<li>
|
1235
|
+
|
1236
|
+
|
1237
|
+
<span class='type'>(<tt>ArgumentError</tt>)</span>
|
1238
|
+
|
1239
|
+
|
1240
|
+
|
1241
|
+
—
|
1242
|
+
<div class='inline'>
|
1243
|
+
<p>If value is not numeric</p>
|
1244
|
+
</div>
|
1245
|
+
|
1246
|
+
</li>
|
1247
|
+
|
1248
|
+
</ul>
|
1249
|
+
|
1250
|
+
</div><table class="source_code">
|
1251
|
+
<tr>
|
1252
|
+
<td>
|
1253
|
+
<pre class="lines">
|
1254
|
+
|
1255
|
+
|
1256
|
+
279
|
1257
|
+
280
|
1258
|
+
281
|
1259
|
+
282
|
1260
|
+
283
|
1261
|
+
284
|
1262
|
+
285
|
1263
|
+
286
|
1264
|
+
287
|
1265
|
+
288
|
1266
|
+
289
|
1267
|
+
290
|
1268
|
+
291
|
1269
|
+
292
|
1270
|
+
293
|
1271
|
+
294
|
1272
|
+
295</pre>
|
1273
|
+
</td>
|
1274
|
+
<td>
|
1275
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 279</span>
|
1276
|
+
|
1277
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_observe'>observe</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
1278
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Observed value must be numeric, got: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span>
|
1279
|
+
|
1280
|
+
<span class='comment'># Update count and sum atomically
|
1281
|
+
</span> <span class='ivar'>@count</span><span class='period'>.</span><span class='id identifier rubyid_increment'>increment</span>
|
1282
|
+
<span class='ivar'>@sum</span><span class='period'>.</span><span class='id identifier rubyid_update'>update</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_current'>current</span><span class='op'>|</span> <span class='id identifier rubyid_current'>current</span> <span class='op'>+</span> <span class='id identifier rubyid_value'>value</span> <span class='rbrace'>}</span>
|
1283
|
+
|
1284
|
+
<span class='comment'># Increment all buckets where value <= boundary (cumulative histogram)
|
1285
|
+
</span> <span class='ivar'>@bucket_boundaries</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_boundary'>boundary</span><span class='comma'>,</span> <span class='id identifier rubyid_index'>index</span><span class='op'>|</span>
|
1286
|
+
<span class='ivar'>@bucket_counts</span><span class='lbracket'>[</span><span class='id identifier rubyid_index'>index</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_increment'>increment</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span> <span class='op'><=</span> <span class='id identifier rubyid_boundary'>boundary</span>
|
1287
|
+
<span class='kw'>end</span>
|
1288
|
+
|
1289
|
+
<span class='comment'># Always increment the infinity bucket (total count)
|
1290
|
+
</span> <span class='ivar'>@bucket_counts</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span><span class='period'>.</span><span class='id identifier rubyid_increment'>increment</span>
|
1291
|
+
|
1292
|
+
<span class='id identifier rubyid_value'>value</span>
|
1293
|
+
<span class='kw'>end</span></pre>
|
1294
|
+
</td>
|
1295
|
+
</tr>
|
1296
|
+
</table>
|
1297
|
+
</div>
|
1298
|
+
|
1299
|
+
<div class="method_details ">
|
1300
|
+
<h3 class="signature " id="reset!-instance_method">
|
1301
|
+
|
1302
|
+
#<strong>reset!</strong> ⇒ <tt>void</tt>
|
1303
|
+
|
1304
|
+
|
1305
|
+
|
1306
|
+
|
1307
|
+
|
1308
|
+
</h3><div class="docstring">
|
1309
|
+
<div class="discussion">
|
1310
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
1311
|
+
<p>Reset the histogram (primarily for testing)</p>
|
1312
|
+
|
1313
|
+
|
1314
|
+
</div>
|
1315
|
+
</div>
|
1316
|
+
<div class="tags">
|
1317
|
+
|
1318
|
+
|
1319
|
+
</div><table class="source_code">
|
1320
|
+
<tr>
|
1321
|
+
<td>
|
1322
|
+
<pre class="lines">
|
1323
|
+
|
1324
|
+
|
1325
|
+
360
|
1326
|
+
361
|
1327
|
+
362
|
1328
|
+
363
|
1329
|
+
364</pre>
|
1330
|
+
</td>
|
1331
|
+
<td>
|
1332
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 360</span>
|
1333
|
+
|
1334
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_reset!'>reset!</span>
|
1335
|
+
<span class='ivar'>@count</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='int'>0</span>
|
1336
|
+
<span class='ivar'>@sum</span><span class='period'>.</span><span class='id identifier rubyid_set'>set</span><span class='lparen'>(</span><span class='float'>0.0</span><span class='rparen'>)</span>
|
1337
|
+
<span class='ivar'>@bucket_counts</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_bucket'>bucket</span><span class='op'>|</span> <span class='id identifier rubyid_bucket'>bucket</span><span class='period'>.</span><span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='int'>0</span> <span class='rbrace'>}</span>
|
1338
|
+
<span class='kw'>end</span></pre>
|
1339
|
+
</td>
|
1340
|
+
</tr>
|
1341
|
+
</table>
|
1342
|
+
</div>
|
1343
|
+
|
1344
|
+
<div class="method_details ">
|
1345
|
+
<h3 class="signature " id="sum-instance_method">
|
1346
|
+
|
1347
|
+
#<strong>sum</strong> ⇒ <tt>Numeric</tt>
|
1348
|
+
|
1349
|
+
|
1350
|
+
|
1351
|
+
|
1352
|
+
|
1353
|
+
</h3><div class="docstring">
|
1354
|
+
<div class="discussion">
|
1355
|
+
|
1356
|
+
<p>Get the sum of all observed values</p>
|
1357
|
+
|
1358
|
+
|
1359
|
+
</div>
|
1360
|
+
</div>
|
1361
|
+
<div class="tags">
|
1362
|
+
|
1363
|
+
<p class="tag_title">Returns:</p>
|
1364
|
+
<ul class="return">
|
1365
|
+
|
1366
|
+
<li>
|
1367
|
+
|
1368
|
+
|
1369
|
+
<span class='type'>(<tt>Numeric</tt>)</span>
|
1370
|
+
|
1371
|
+
|
1372
|
+
|
1373
|
+
—
|
1374
|
+
<div class='inline'>
|
1375
|
+
<p>Sum of observations</p>
|
1376
|
+
</div>
|
1377
|
+
|
1378
|
+
</li>
|
1379
|
+
|
1380
|
+
</ul>
|
1381
|
+
|
1382
|
+
</div><table class="source_code">
|
1383
|
+
<tr>
|
1384
|
+
<td>
|
1385
|
+
<pre class="lines">
|
1386
|
+
|
1387
|
+
|
1388
|
+
307
|
1389
|
+
308
|
1390
|
+
309</pre>
|
1391
|
+
</td>
|
1392
|
+
<td>
|
1393
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 307</span>
|
1394
|
+
|
1395
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_sum'>sum</span>
|
1396
|
+
<span class='ivar'>@sum</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span>
|
1397
|
+
<span class='kw'>end</span></pre>
|
1398
|
+
</td>
|
1399
|
+
</tr>
|
1400
|
+
</table>
|
1401
|
+
</div>
|
1402
|
+
|
1403
|
+
<div class="method_details ">
|
1404
|
+
<h3 class="signature " id="to_h-instance_method">
|
1405
|
+
|
1406
|
+
#<strong>to_h</strong> ⇒ <tt>Hash</tt>
|
1407
|
+
|
1408
|
+
|
1409
|
+
|
1410
|
+
|
1411
|
+
|
1412
|
+
</h3><div class="docstring">
|
1413
|
+
<div class="discussion">
|
1414
|
+
|
1415
|
+
<p>Get a hash representation of this metric</p>
|
1416
|
+
|
1417
|
+
|
1418
|
+
</div>
|
1419
|
+
</div>
|
1420
|
+
<div class="tags">
|
1421
|
+
|
1422
|
+
<p class="tag_title">Returns:</p>
|
1423
|
+
<ul class="return">
|
1424
|
+
|
1425
|
+
<li>
|
1426
|
+
|
1427
|
+
|
1428
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1429
|
+
|
1430
|
+
|
1431
|
+
|
1432
|
+
—
|
1433
|
+
<div class='inline'>
|
1434
|
+
<p>Metric data including name, labels, buckets, count, sum, type</p>
|
1435
|
+
</div>
|
1436
|
+
|
1437
|
+
</li>
|
1438
|
+
|
1439
|
+
</ul>
|
1440
|
+
|
1441
|
+
</div><table class="source_code">
|
1442
|
+
<tr>
|
1443
|
+
<td>
|
1444
|
+
<pre class="lines">
|
1445
|
+
|
1446
|
+
|
1447
|
+
336
|
1448
|
+
337
|
1449
|
+
338
|
1450
|
+
339
|
1451
|
+
340
|
1452
|
+
341
|
1453
|
+
342
|
1454
|
+
343
|
1455
|
+
344
|
1456
|
+
345
|
1457
|
+
346
|
1458
|
+
347</pre>
|
1459
|
+
</td>
|
1460
|
+
<td>
|
1461
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/metric_types.rb', line 336</span>
|
1462
|
+
|
1463
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_to_h'>to_h</span>
|
1464
|
+
<span class='lbrace'>{</span>
|
1465
|
+
<span class='label'>name:</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span>
|
1466
|
+
<span class='label'>labels:</span> <span class='id identifier rubyid_labels'>labels</span><span class='comma'>,</span>
|
1467
|
+
<span class='label'>buckets:</span> <span class='id identifier rubyid_buckets'>buckets</span><span class='comma'>,</span>
|
1468
|
+
<span class='label'>count:</span> <span class='id identifier rubyid_count'>count</span><span class='comma'>,</span>
|
1469
|
+
<span class='label'>sum:</span> <span class='id identifier rubyid_sum'>sum</span><span class='comma'>,</span>
|
1470
|
+
<span class='label'>average:</span> <span class='id identifier rubyid_average'>average</span><span class='comma'>,</span>
|
1471
|
+
<span class='label'>type:</span> <span class='symbol'>:histogram</span><span class='comma'>,</span>
|
1472
|
+
<span class='label'>created_at:</span> <span class='id identifier rubyid_created_at'>created_at</span>
|
1473
|
+
<span class='rbrace'>}</span>
|
1474
|
+
<span class='kw'>end</span></pre>
|
1475
|
+
</td>
|
1476
|
+
</tr>
|
1477
|
+
</table>
|
1478
|
+
</div>
|
1479
|
+
|
1480
|
+
</div>
|
1481
|
+
|
1482
|
+
</div>
|
1483
|
+
|
1484
|
+
<div id="footer">
|
1485
|
+
Generated on Tue Jul 1 16:47:37 2025 by
|
1486
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1487
|
+
0.9.37 (ruby-3.2.4).
|
1488
|
+
</div>
|
1489
|
+
|
1490
|
+
</div>
|
1491
|
+
</body>
|
1492
|
+
</html>
|