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,2178 @@
|
|
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::EventRouter
|
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::EventRouter";
|
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 (E)</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>
|
41
|
+
»
|
42
|
+
<span class="title">EventRouter</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::EventRouter
|
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::EventRouter</li>
|
78
|
+
|
79
|
+
</ul>
|
80
|
+
<a href="#" class="inheritanceTree">show all</a>
|
81
|
+
|
82
|
+
</dd>
|
83
|
+
</dl>
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
<dl>
|
91
|
+
<dt>Includes:</dt>
|
92
|
+
<dd>Singleton</dd>
|
93
|
+
</dl>
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
<dl>
|
101
|
+
<dt>Defined in:</dt>
|
102
|
+
<dd>lib/tasker/telemetry/event_router.rb</dd>
|
103
|
+
</dl>
|
104
|
+
|
105
|
+
</div>
|
106
|
+
|
107
|
+
<h2>Overview</h2><div class="docstring">
|
108
|
+
<div class="discussion">
|
109
|
+
|
110
|
+
<p>EventRouter provides intelligent routing of events to appropriate telemetry backends</p>
|
111
|
+
|
112
|
+
<p>This is the strategic core of Phase 4.2.1, enabling declarative event→telemetry mapping while preserving all existing TelemetrySubscriber functionality. It follows the singleton pattern established by HandlerFactory and Events::Publisher.</p>
|
113
|
+
|
114
|
+
<p>Core Philosophy: PRESERVE all existing 8 TelemetrySubscriber events while adding intelligent routing for 35+ additional lifecycle events.</p>
|
115
|
+
|
116
|
+
|
117
|
+
</div>
|
118
|
+
</div>
|
119
|
+
<div class="tags">
|
120
|
+
|
121
|
+
<div class="examples">
|
122
|
+
<h4 class="tag_title">Examples:</h4>
|
123
|
+
|
124
|
+
|
125
|
+
<h5 class="example_title"><div class='inline'>
|
126
|
+
<p>Basic configuration</p>
|
127
|
+
</div></h5>
|
128
|
+
|
129
|
+
<pre class="example code"><code><span class='const'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="../Telemetry.html" title="Tasker::Telemetry (module)">Telemetry</a></span></span><span class='op'>::</span><span class='const'>EventRouter</span><span class='period'>.</span><span class='id identifier rubyid_configure'><span class='object_link'><a href="#configure-class_method" title="Tasker::Telemetry::EventRouter.configure (method)">configure</a></span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_router'>router</span><span class='op'>|</span>
|
130
|
+
<span class='comment'># PRESERVE: All current 8 events → both traces AND metrics
|
131
|
+
</span> <span class='id identifier rubyid_router'>router</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>task.completed</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbracket'>[</span><span class='symbol'>:trace</span><span class='comma'>,</span> <span class='symbol'>:metrics</span><span class='rbracket'>]</span>
|
132
|
+
<span class='id identifier rubyid_router'>router</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>step.failed</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbracket'>[</span><span class='symbol'>:trace</span><span class='comma'>,</span> <span class='symbol'>:metrics</span><span class='rbracket'>]</span>
|
133
|
+
|
134
|
+
<span class='comment'># ENHANCE: Add missing lifecycle events with intelligent routing
|
135
|
+
</span> <span class='id identifier rubyid_router'>router</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>workflow.viable_steps_discovered</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbracket'>[</span><span class='symbol'>:trace</span><span class='comma'>,</span> <span class='symbol'>:metrics</span><span class='rbracket'>]</span>
|
136
|
+
<span class='id identifier rubyid_router'>router</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>observability.task.enqueue</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbracket'>[</span><span class='symbol'>:metrics</span><span class='rbracket'>]</span> <span class='comment'># Job queue metrics only
|
137
|
+
</span> <span class='id identifier rubyid_router'>router</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>step.before_handle</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbracket'>[</span><span class='symbol'>:trace</span><span class='rbracket'>]</span> <span class='comment'># Handler execution spans
|
138
|
+
</span><span class='kw'>end</span></code></pre>
|
139
|
+
|
140
|
+
|
141
|
+
<h5 class="example_title"><div class='inline'>
|
142
|
+
<p>Production sampling configuration</p>
|
143
|
+
</div></h5>
|
144
|
+
|
145
|
+
<pre class="example code"><code><span class='id identifier rubyid_router'>router</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>step.before_handle</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbracket'>[</span><span class='symbol'>:trace</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>sampling_rate:</span> <span class='float'>0.1</span> <span class='comment'># 10% sampling
|
146
|
+
</span><span class='id identifier rubyid_router'>router</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>database.query_executed</span><span class='tstring_end'>'</span></span> <span class='op'>=></span> <span class='lbracket'>[</span><span class='symbol'>:trace</span><span class='comma'>,</span> <span class='symbol'>:metrics</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>priority:</span> <span class='symbol'>:high</span></code></pre>
|
147
|
+
|
148
|
+
</div>
|
149
|
+
|
150
|
+
|
151
|
+
</div>
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
|
156
|
+
<ul class="summary">
|
157
|
+
|
158
|
+
<li class="public ">
|
159
|
+
<span class="summary_signature">
|
160
|
+
|
161
|
+
<a href="#log_events-instance_method" title="#log_events (instance method)">#<strong>log_events</strong> ⇒ Array<String> </a>
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
</span>
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
<span class="note title readonly">readonly</span>
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
<span class="summary_desc"><div class='inline'>
|
181
|
+
<p>List of events that route to logs.</p>
|
182
|
+
</div></span>
|
183
|
+
|
184
|
+
</li>
|
185
|
+
|
186
|
+
|
187
|
+
<li class="public ">
|
188
|
+
<span class="summary_signature">
|
189
|
+
|
190
|
+
<a href="#mappings-instance_method" title="#mappings (instance method)">#<strong>mappings</strong> ⇒ Hash<String, EventMapping> </a>
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
</span>
|
195
|
+
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
<span class="note title readonly">readonly</span>
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
<span class="summary_desc"><div class='inline'>
|
210
|
+
<p>Registry of event mappings by event name.</p>
|
211
|
+
</div></span>
|
212
|
+
|
213
|
+
</li>
|
214
|
+
|
215
|
+
|
216
|
+
<li class="public ">
|
217
|
+
<span class="summary_signature">
|
218
|
+
|
219
|
+
<a href="#metrics_events-instance_method" title="#metrics_events (instance method)">#<strong>metrics_events</strong> ⇒ Array<String> </a>
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
</span>
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
|
228
|
+
<span class="note title readonly">readonly</span>
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
<span class="summary_desc"><div class='inline'>
|
239
|
+
<p>List of events that route to metrics.</p>
|
240
|
+
</div></span>
|
241
|
+
|
242
|
+
</li>
|
243
|
+
|
244
|
+
|
245
|
+
<li class="public ">
|
246
|
+
<span class="summary_signature">
|
247
|
+
|
248
|
+
<a href="#trace_events-instance_method" title="#trace_events (instance method)">#<strong>trace_events</strong> ⇒ Array<String> </a>
|
249
|
+
|
250
|
+
|
251
|
+
|
252
|
+
</span>
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
<span class="note title readonly">readonly</span>
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
<span class="summary_desc"><div class='inline'>
|
268
|
+
<p>List of events that route to traces.</p>
|
269
|
+
</div></span>
|
270
|
+
|
271
|
+
</li>
|
272
|
+
|
273
|
+
|
274
|
+
</ul>
|
275
|
+
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
<h2>
|
281
|
+
Class Method Summary
|
282
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
283
|
+
</h2>
|
284
|
+
|
285
|
+
<ul class="summary">
|
286
|
+
|
287
|
+
<li class="public ">
|
288
|
+
<span class="summary_signature">
|
289
|
+
|
290
|
+
<a href="#configure-class_method" title="configure (class method)">.<strong>configure</strong> {|EventRouter| ... } ⇒ EventRouter </a>
|
291
|
+
|
292
|
+
|
293
|
+
|
294
|
+
</span>
|
295
|
+
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
|
304
|
+
<span class="summary_desc"><div class='inline'>
|
305
|
+
<p>Configure event routing with a block.</p>
|
306
|
+
</div></span>
|
307
|
+
|
308
|
+
</li>
|
309
|
+
|
310
|
+
|
311
|
+
</ul>
|
312
|
+
|
313
|
+
<h2>
|
314
|
+
Instance Method Summary
|
315
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
316
|
+
</h2>
|
317
|
+
|
318
|
+
<ul class="summary">
|
319
|
+
|
320
|
+
<li class="public ">
|
321
|
+
<span class="summary_signature">
|
322
|
+
|
323
|
+
<a href="#bulk_configure-instance_method" title="#bulk_configure (instance method)">#<strong>bulk_configure</strong>(mappings_config) ⇒ Array<EventMapping> </a>
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
</span>
|
328
|
+
|
329
|
+
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
|
336
|
+
|
337
|
+
<span class="summary_desc"><div class='inline'>
|
338
|
+
<p>Bulk configure multiple mappings.</p>
|
339
|
+
</div></span>
|
340
|
+
|
341
|
+
</li>
|
342
|
+
|
343
|
+
|
344
|
+
<li class="public ">
|
345
|
+
<span class="summary_signature">
|
346
|
+
|
347
|
+
<a href="#configured_events-instance_method" title="#configured_events (instance method)">#<strong>configured_events</strong> ⇒ Array<String> </a>
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
</span>
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
|
360
|
+
|
361
|
+
<span class="summary_desc"><div class='inline'>
|
362
|
+
<p>Get a list of all configured event names.</p>
|
363
|
+
</div></span>
|
364
|
+
|
365
|
+
</li>
|
366
|
+
|
367
|
+
|
368
|
+
<li class="public ">
|
369
|
+
<span class="summary_signature">
|
370
|
+
|
371
|
+
<a href="#events_for_backend-instance_method" title="#events_for_backend (instance method)">#<strong>events_for_backend</strong>(backend) ⇒ Array<String> </a>
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
</span>
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
<span class="summary_desc"><div class='inline'>
|
386
|
+
<p>Get all events that should route to a specific backend.</p>
|
387
|
+
</div></span>
|
388
|
+
|
389
|
+
</li>
|
390
|
+
|
391
|
+
|
392
|
+
<li class="public ">
|
393
|
+
<span class="summary_signature">
|
394
|
+
|
395
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong> ⇒ EventRouter </a>
|
396
|
+
|
397
|
+
|
398
|
+
|
399
|
+
</span>
|
400
|
+
|
401
|
+
|
402
|
+
<span class="note title constructor">constructor</span>
|
403
|
+
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
<span class="summary_desc"><div class='inline'>
|
412
|
+
<p>Initialize the event router with default mappings.</p>
|
413
|
+
</div></span>
|
414
|
+
|
415
|
+
</li>
|
416
|
+
|
417
|
+
|
418
|
+
<li class="public ">
|
419
|
+
<span class="summary_signature">
|
420
|
+
|
421
|
+
<a href="#map-instance_method" title="#map (instance method)">#<strong>map</strong>(event_name_or_hash, backends: [:trace]) ⇒ EventMapping </a>
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
</span>
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
|
432
|
+
|
433
|
+
|
434
|
+
|
435
|
+
<span class="summary_desc"><div class='inline'>
|
436
|
+
<p>Map an event to specific telemetry backends.</p>
|
437
|
+
</div></span>
|
438
|
+
|
439
|
+
</li>
|
440
|
+
|
441
|
+
|
442
|
+
<li class="public ">
|
443
|
+
<span class="summary_signature">
|
444
|
+
|
445
|
+
<a href="#mapping_exists%3F-instance_method" title="#mapping_exists? (instance method)">#<strong>mapping_exists?</strong>(event_name) ⇒ Boolean </a>
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
</span>
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
|
455
|
+
|
456
|
+
|
457
|
+
|
458
|
+
|
459
|
+
<span class="summary_desc"><div class='inline'>
|
460
|
+
<p>Check if a mapping exists for a specific event.</p>
|
461
|
+
</div></span>
|
462
|
+
|
463
|
+
</li>
|
464
|
+
|
465
|
+
|
466
|
+
<li class="public ">
|
467
|
+
<span class="summary_signature">
|
468
|
+
|
469
|
+
<a href="#mapping_for-instance_method" title="#mapping_for (instance method)">#<strong>mapping_for</strong>(event_name) ⇒ EventMapping<sup>?</sup> </a>
|
470
|
+
|
471
|
+
|
472
|
+
|
473
|
+
</span>
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
|
479
|
+
|
480
|
+
|
481
|
+
|
482
|
+
|
483
|
+
<span class="summary_desc"><div class='inline'>
|
484
|
+
<p>Get the mapping for a specific event.</p>
|
485
|
+
</div></span>
|
486
|
+
|
487
|
+
</li>
|
488
|
+
|
489
|
+
|
490
|
+
<li class="public ">
|
491
|
+
<span class="summary_signature">
|
492
|
+
|
493
|
+
<a href="#reset!-instance_method" title="#reset! (instance method)">#<strong>reset!</strong> ⇒ void </a>
|
494
|
+
|
495
|
+
|
496
|
+
|
497
|
+
</span>
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
<span class="summary_desc"><div class='inline'>
|
508
|
+
<p>Reset all mappings (primarily for testing).</p>
|
509
|
+
</div></span>
|
510
|
+
|
511
|
+
</li>
|
512
|
+
|
513
|
+
|
514
|
+
<li class="public ">
|
515
|
+
<span class="summary_signature">
|
516
|
+
|
517
|
+
<a href="#route_event-instance_method" title="#route_event (instance method)">#<strong>route_event</strong>(event_name, payload = {}) ⇒ Hash </a>
|
518
|
+
|
519
|
+
|
520
|
+
|
521
|
+
</span>
|
522
|
+
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
|
530
|
+
|
531
|
+
<span class="summary_desc"><div class='inline'>
|
532
|
+
<p>Route an event to appropriate backends based on configuration.</p>
|
533
|
+
</div></span>
|
534
|
+
|
535
|
+
</li>
|
536
|
+
|
537
|
+
|
538
|
+
<li class="public ">
|
539
|
+
<span class="summary_signature">
|
540
|
+
|
541
|
+
<a href="#routes_to_logs%3F-instance_method" title="#routes_to_logs? (instance method)">#<strong>routes_to_logs?</strong>(event_name) ⇒ Boolean </a>
|
542
|
+
|
543
|
+
|
544
|
+
|
545
|
+
</span>
|
546
|
+
|
547
|
+
|
548
|
+
|
549
|
+
|
550
|
+
|
551
|
+
|
552
|
+
|
553
|
+
|
554
|
+
|
555
|
+
<span class="summary_desc"><div class='inline'>
|
556
|
+
<p>Check if an event routes to logs.</p>
|
557
|
+
</div></span>
|
558
|
+
|
559
|
+
</li>
|
560
|
+
|
561
|
+
|
562
|
+
<li class="public ">
|
563
|
+
<span class="summary_signature">
|
564
|
+
|
565
|
+
<a href="#routes_to_metrics%3F-instance_method" title="#routes_to_metrics? (instance method)">#<strong>routes_to_metrics?</strong>(event_name) ⇒ Boolean </a>
|
566
|
+
|
567
|
+
|
568
|
+
|
569
|
+
</span>
|
570
|
+
|
571
|
+
|
572
|
+
|
573
|
+
|
574
|
+
|
575
|
+
|
576
|
+
|
577
|
+
|
578
|
+
|
579
|
+
<span class="summary_desc"><div class='inline'>
|
580
|
+
<p>Check if an event routes to metrics.</p>
|
581
|
+
</div></span>
|
582
|
+
|
583
|
+
</li>
|
584
|
+
|
585
|
+
|
586
|
+
<li class="public ">
|
587
|
+
<span class="summary_signature">
|
588
|
+
|
589
|
+
<a href="#routes_to_traces%3F-instance_method" title="#routes_to_traces? (instance method)">#<strong>routes_to_traces?</strong>(event_name) ⇒ Boolean </a>
|
590
|
+
|
591
|
+
|
592
|
+
|
593
|
+
</span>
|
594
|
+
|
595
|
+
|
596
|
+
|
597
|
+
|
598
|
+
|
599
|
+
|
600
|
+
|
601
|
+
|
602
|
+
|
603
|
+
<span class="summary_desc"><div class='inline'>
|
604
|
+
<p>Check if an event routes to traces.</p>
|
605
|
+
</div></span>
|
606
|
+
|
607
|
+
</li>
|
608
|
+
|
609
|
+
|
610
|
+
<li class="public ">
|
611
|
+
<span class="summary_signature">
|
612
|
+
|
613
|
+
<a href="#routing_stats-instance_method" title="#routing_stats (instance method)">#<strong>routing_stats</strong> ⇒ Hash </a>
|
614
|
+
|
615
|
+
|
616
|
+
|
617
|
+
</span>
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
|
622
|
+
|
623
|
+
|
624
|
+
|
625
|
+
|
626
|
+
|
627
|
+
<span class="summary_desc"><div class='inline'>
|
628
|
+
<p>Get routing statistics for debugging.</p>
|
629
|
+
</div></span>
|
630
|
+
|
631
|
+
</li>
|
632
|
+
|
633
|
+
|
634
|
+
</ul>
|
635
|
+
|
636
|
+
|
637
|
+
|
638
|
+
<div id="constructor_details" class="method_details_list">
|
639
|
+
<h2>Constructor Details</h2>
|
640
|
+
|
641
|
+
<div class="method_details first">
|
642
|
+
<h3 class="signature first" id="initialize-instance_method">
|
643
|
+
|
644
|
+
#<strong>initialize</strong> ⇒ <tt><span class='object_link'><a href="" title="Tasker::Telemetry::EventRouter (class)">EventRouter</a></span></tt>
|
645
|
+
|
646
|
+
|
647
|
+
|
648
|
+
|
649
|
+
|
650
|
+
</h3><div class="docstring">
|
651
|
+
<div class="discussion">
|
652
|
+
|
653
|
+
<p>Initialize the event router with default mappings</p>
|
654
|
+
|
655
|
+
|
656
|
+
</div>
|
657
|
+
</div>
|
658
|
+
<div class="tags">
|
659
|
+
|
660
|
+
|
661
|
+
</div><table class="source_code">
|
662
|
+
<tr>
|
663
|
+
<td>
|
664
|
+
<pre class="lines">
|
665
|
+
|
666
|
+
|
667
|
+
48
|
668
|
+
49
|
669
|
+
50
|
670
|
+
51
|
671
|
+
52
|
672
|
+
53
|
673
|
+
54
|
674
|
+
55
|
675
|
+
56
|
676
|
+
57
|
677
|
+
58
|
678
|
+
59</pre>
|
679
|
+
</td>
|
680
|
+
<td>
|
681
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 48</span>
|
682
|
+
|
683
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span>
|
684
|
+
<span class='ivar'>@mappings</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
685
|
+
<span class='ivar'>@trace_events</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
686
|
+
<span class='ivar'>@metrics_events</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
687
|
+
<span class='ivar'>@log_events</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
688
|
+
|
689
|
+
<span class='comment'># Load default mappings that preserve existing TelemetrySubscriber functionality
|
690
|
+
</span> <span class='id identifier rubyid_load_default_mappings'>load_default_mappings</span>
|
691
|
+
|
692
|
+
<span class='comment'># Register this router with MetricsBackend for automatic routing
|
693
|
+
</span> <span class='const'><span class='object_link'><a href="MetricsBackend.html" title="Tasker::Telemetry::MetricsBackend (class)">MetricsBackend</a></span></span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_register_event_router'>register_event_router</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span>
|
694
|
+
<span class='kw'>end</span></pre>
|
695
|
+
</td>
|
696
|
+
</tr>
|
697
|
+
</table>
|
698
|
+
</div>
|
699
|
+
|
700
|
+
</div>
|
701
|
+
|
702
|
+
<div id="instance_attr_details" class="attr_details">
|
703
|
+
<h2>Instance Attribute Details</h2>
|
704
|
+
|
705
|
+
|
706
|
+
<span id=""></span>
|
707
|
+
<div class="method_details first">
|
708
|
+
<h3 class="signature first" id="log_events-instance_method">
|
709
|
+
|
710
|
+
#<strong>log_events</strong> ⇒ <tt>Array<String></tt> <span class="extras">(readonly)</span>
|
711
|
+
|
712
|
+
|
713
|
+
|
714
|
+
|
715
|
+
|
716
|
+
</h3><div class="docstring">
|
717
|
+
<div class="discussion">
|
718
|
+
|
719
|
+
<p>Returns List of events that route to logs.</p>
|
720
|
+
|
721
|
+
|
722
|
+
</div>
|
723
|
+
</div>
|
724
|
+
<div class="tags">
|
725
|
+
|
726
|
+
<p class="tag_title">Returns:</p>
|
727
|
+
<ul class="return">
|
728
|
+
|
729
|
+
<li>
|
730
|
+
|
731
|
+
|
732
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
733
|
+
|
734
|
+
|
735
|
+
|
736
|
+
—
|
737
|
+
<div class='inline'>
|
738
|
+
<p>List of events that route to logs</p>
|
739
|
+
</div>
|
740
|
+
|
741
|
+
</li>
|
742
|
+
|
743
|
+
</ul>
|
744
|
+
|
745
|
+
</div><table class="source_code">
|
746
|
+
<tr>
|
747
|
+
<td>
|
748
|
+
<pre class="lines">
|
749
|
+
|
750
|
+
|
751
|
+
45
|
752
|
+
46
|
753
|
+
47</pre>
|
754
|
+
</td>
|
755
|
+
<td>
|
756
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 45</span>
|
757
|
+
|
758
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_log_events'>log_events</span>
|
759
|
+
<span class='ivar'>@log_events</span>
|
760
|
+
<span class='kw'>end</span></pre>
|
761
|
+
</td>
|
762
|
+
</tr>
|
763
|
+
</table>
|
764
|
+
</div>
|
765
|
+
|
766
|
+
|
767
|
+
<span id=""></span>
|
768
|
+
<div class="method_details ">
|
769
|
+
<h3 class="signature " id="mappings-instance_method">
|
770
|
+
|
771
|
+
#<strong>mappings</strong> ⇒ <tt>Hash<String, <span class='object_link'><a href="EventMapping.html" title="Tasker::Telemetry::EventMapping (class)">EventMapping</a></span>></tt> <span class="extras">(readonly)</span>
|
772
|
+
|
773
|
+
|
774
|
+
|
775
|
+
|
776
|
+
|
777
|
+
</h3><div class="docstring">
|
778
|
+
<div class="discussion">
|
779
|
+
|
780
|
+
<p>Returns Registry of event mappings by event name.</p>
|
781
|
+
|
782
|
+
|
783
|
+
</div>
|
784
|
+
</div>
|
785
|
+
<div class="tags">
|
786
|
+
|
787
|
+
<p class="tag_title">Returns:</p>
|
788
|
+
<ul class="return">
|
789
|
+
|
790
|
+
<li>
|
791
|
+
|
792
|
+
|
793
|
+
<span class='type'>(<tt>Hash<String, <span class='object_link'><a href="EventMapping.html" title="Tasker::Telemetry::EventMapping (class)">EventMapping</a></span>></tt>)</span>
|
794
|
+
|
795
|
+
|
796
|
+
|
797
|
+
—
|
798
|
+
<div class='inline'>
|
799
|
+
<p>Registry of event mappings by event name</p>
|
800
|
+
</div>
|
801
|
+
|
802
|
+
</li>
|
803
|
+
|
804
|
+
</ul>
|
805
|
+
|
806
|
+
</div><table class="source_code">
|
807
|
+
<tr>
|
808
|
+
<td>
|
809
|
+
<pre class="lines">
|
810
|
+
|
811
|
+
|
812
|
+
36
|
813
|
+
37
|
814
|
+
38</pre>
|
815
|
+
</td>
|
816
|
+
<td>
|
817
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 36</span>
|
818
|
+
|
819
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_mappings'>mappings</span>
|
820
|
+
<span class='ivar'>@mappings</span>
|
821
|
+
<span class='kw'>end</span></pre>
|
822
|
+
</td>
|
823
|
+
</tr>
|
824
|
+
</table>
|
825
|
+
</div>
|
826
|
+
|
827
|
+
|
828
|
+
<span id=""></span>
|
829
|
+
<div class="method_details ">
|
830
|
+
<h3 class="signature " id="metrics_events-instance_method">
|
831
|
+
|
832
|
+
#<strong>metrics_events</strong> ⇒ <tt>Array<String></tt> <span class="extras">(readonly)</span>
|
833
|
+
|
834
|
+
|
835
|
+
|
836
|
+
|
837
|
+
|
838
|
+
</h3><div class="docstring">
|
839
|
+
<div class="discussion">
|
840
|
+
|
841
|
+
<p>Returns List of events that route to metrics.</p>
|
842
|
+
|
843
|
+
|
844
|
+
</div>
|
845
|
+
</div>
|
846
|
+
<div class="tags">
|
847
|
+
|
848
|
+
<p class="tag_title">Returns:</p>
|
849
|
+
<ul class="return">
|
850
|
+
|
851
|
+
<li>
|
852
|
+
|
853
|
+
|
854
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
855
|
+
|
856
|
+
|
857
|
+
|
858
|
+
—
|
859
|
+
<div class='inline'>
|
860
|
+
<p>List of events that route to metrics</p>
|
861
|
+
</div>
|
862
|
+
|
863
|
+
</li>
|
864
|
+
|
865
|
+
</ul>
|
866
|
+
|
867
|
+
</div><table class="source_code">
|
868
|
+
<tr>
|
869
|
+
<td>
|
870
|
+
<pre class="lines">
|
871
|
+
|
872
|
+
|
873
|
+
42
|
874
|
+
43
|
875
|
+
44</pre>
|
876
|
+
</td>
|
877
|
+
<td>
|
878
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 42</span>
|
879
|
+
|
880
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_metrics_events'>metrics_events</span>
|
881
|
+
<span class='ivar'>@metrics_events</span>
|
882
|
+
<span class='kw'>end</span></pre>
|
883
|
+
</td>
|
884
|
+
</tr>
|
885
|
+
</table>
|
886
|
+
</div>
|
887
|
+
|
888
|
+
|
889
|
+
<span id=""></span>
|
890
|
+
<div class="method_details ">
|
891
|
+
<h3 class="signature " id="trace_events-instance_method">
|
892
|
+
|
893
|
+
#<strong>trace_events</strong> ⇒ <tt>Array<String></tt> <span class="extras">(readonly)</span>
|
894
|
+
|
895
|
+
|
896
|
+
|
897
|
+
|
898
|
+
|
899
|
+
</h3><div class="docstring">
|
900
|
+
<div class="discussion">
|
901
|
+
|
902
|
+
<p>Returns List of events that route to traces.</p>
|
903
|
+
|
904
|
+
|
905
|
+
</div>
|
906
|
+
</div>
|
907
|
+
<div class="tags">
|
908
|
+
|
909
|
+
<p class="tag_title">Returns:</p>
|
910
|
+
<ul class="return">
|
911
|
+
|
912
|
+
<li>
|
913
|
+
|
914
|
+
|
915
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
916
|
+
|
917
|
+
|
918
|
+
|
919
|
+
—
|
920
|
+
<div class='inline'>
|
921
|
+
<p>List of events that route to traces</p>
|
922
|
+
</div>
|
923
|
+
|
924
|
+
</li>
|
925
|
+
|
926
|
+
</ul>
|
927
|
+
|
928
|
+
</div><table class="source_code">
|
929
|
+
<tr>
|
930
|
+
<td>
|
931
|
+
<pre class="lines">
|
932
|
+
|
933
|
+
|
934
|
+
39
|
935
|
+
40
|
936
|
+
41</pre>
|
937
|
+
</td>
|
938
|
+
<td>
|
939
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 39</span>
|
940
|
+
|
941
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_trace_events'>trace_events</span>
|
942
|
+
<span class='ivar'>@trace_events</span>
|
943
|
+
<span class='kw'>end</span></pre>
|
944
|
+
</td>
|
945
|
+
</tr>
|
946
|
+
</table>
|
947
|
+
</div>
|
948
|
+
|
949
|
+
</div>
|
950
|
+
|
951
|
+
|
952
|
+
<div id="class_method_details" class="method_details_list">
|
953
|
+
<h2>Class Method Details</h2>
|
954
|
+
|
955
|
+
|
956
|
+
<div class="method_details first">
|
957
|
+
<h3 class="signature first" id="configure-class_method">
|
958
|
+
|
959
|
+
.<strong>configure</strong> {|EventRouter| ... } ⇒ <tt><span class='object_link'><a href="" title="Tasker::Telemetry::EventRouter (class)">EventRouter</a></span></tt>
|
960
|
+
|
961
|
+
|
962
|
+
|
963
|
+
|
964
|
+
|
965
|
+
</h3><div class="docstring">
|
966
|
+
<div class="discussion">
|
967
|
+
|
968
|
+
<p>Configure event routing with a block</p>
|
969
|
+
|
970
|
+
|
971
|
+
</div>
|
972
|
+
</div>
|
973
|
+
<div class="tags">
|
974
|
+
|
975
|
+
<p class="tag_title">Yields:</p>
|
976
|
+
<ul class="yield">
|
977
|
+
|
978
|
+
<li>
|
979
|
+
|
980
|
+
|
981
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Tasker::Telemetry::EventRouter (class)">EventRouter</a></span></tt>)</span>
|
982
|
+
|
983
|
+
|
984
|
+
|
985
|
+
—
|
986
|
+
<div class='inline'>
|
987
|
+
<p>The router instance for configuration</p>
|
988
|
+
</div>
|
989
|
+
|
990
|
+
</li>
|
991
|
+
|
992
|
+
</ul>
|
993
|
+
<p class="tag_title">Returns:</p>
|
994
|
+
<ul class="return">
|
995
|
+
|
996
|
+
<li>
|
997
|
+
|
998
|
+
|
999
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Tasker::Telemetry::EventRouter (class)">EventRouter</a></span></tt>)</span>
|
1000
|
+
|
1001
|
+
|
1002
|
+
|
1003
|
+
—
|
1004
|
+
<div class='inline'>
|
1005
|
+
<p>The configured router instance</p>
|
1006
|
+
</div>
|
1007
|
+
|
1008
|
+
</li>
|
1009
|
+
|
1010
|
+
</ul>
|
1011
|
+
|
1012
|
+
</div><table class="source_code">
|
1013
|
+
<tr>
|
1014
|
+
<td>
|
1015
|
+
<pre class="lines">
|
1016
|
+
|
1017
|
+
|
1018
|
+
65
|
1019
|
+
66
|
1020
|
+
67</pre>
|
1021
|
+
</td>
|
1022
|
+
<td>
|
1023
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 65</span>
|
1024
|
+
|
1025
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_configure'>configure</span>
|
1026
|
+
<span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_tap'>tap</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_router'>router</span><span class='op'>|</span> <span class='kw'>yield</span><span class='lparen'>(</span><span class='id identifier rubyid_router'>router</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_block_given?'>block_given?</span> <span class='rbrace'>}</span>
|
1027
|
+
<span class='kw'>end</span></pre>
|
1028
|
+
</td>
|
1029
|
+
</tr>
|
1030
|
+
</table>
|
1031
|
+
</div>
|
1032
|
+
|
1033
|
+
</div>
|
1034
|
+
|
1035
|
+
<div id="instance_method_details" class="method_details_list">
|
1036
|
+
<h2>Instance Method Details</h2>
|
1037
|
+
|
1038
|
+
|
1039
|
+
<div class="method_details first">
|
1040
|
+
<h3 class="signature first" id="bulk_configure-instance_method">
|
1041
|
+
|
1042
|
+
#<strong>bulk_configure</strong>(mappings_config) ⇒ <tt>Array<<span class='object_link'><a href="EventMapping.html" title="Tasker::Telemetry::EventMapping (class)">EventMapping</a></span>></tt>
|
1043
|
+
|
1044
|
+
|
1045
|
+
|
1046
|
+
|
1047
|
+
|
1048
|
+
</h3><div class="docstring">
|
1049
|
+
<div class="discussion">
|
1050
|
+
|
1051
|
+
<p>Bulk configure multiple mappings</p>
|
1052
|
+
|
1053
|
+
|
1054
|
+
</div>
|
1055
|
+
</div>
|
1056
|
+
<div class="tags">
|
1057
|
+
<p class="tag_title">Parameters:</p>
|
1058
|
+
<ul class="param">
|
1059
|
+
|
1060
|
+
<li>
|
1061
|
+
|
1062
|
+
<span class='name'>mappings_config</span>
|
1063
|
+
|
1064
|
+
|
1065
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1066
|
+
|
1067
|
+
|
1068
|
+
|
1069
|
+
—
|
1070
|
+
<div class='inline'>
|
1071
|
+
<p>Hash of event_name => backend_config</p>
|
1072
|
+
</div>
|
1073
|
+
|
1074
|
+
</li>
|
1075
|
+
|
1076
|
+
</ul>
|
1077
|
+
|
1078
|
+
<p class="tag_title">Returns:</p>
|
1079
|
+
<ul class="return">
|
1080
|
+
|
1081
|
+
<li>
|
1082
|
+
|
1083
|
+
|
1084
|
+
<span class='type'>(<tt>Array<<span class='object_link'><a href="EventMapping.html" title="Tasker::Telemetry::EventMapping (class)">EventMapping</a></span>></tt>)</span>
|
1085
|
+
|
1086
|
+
|
1087
|
+
|
1088
|
+
—
|
1089
|
+
<div class='inline'>
|
1090
|
+
<p>Array of created mappings</p>
|
1091
|
+
</div>
|
1092
|
+
|
1093
|
+
</li>
|
1094
|
+
|
1095
|
+
</ul>
|
1096
|
+
<p class="tag_title">Raises:</p>
|
1097
|
+
<ul class="raise">
|
1098
|
+
|
1099
|
+
<li>
|
1100
|
+
|
1101
|
+
|
1102
|
+
<span class='type'>(<tt>ArgumentError</tt>)</span>
|
1103
|
+
|
1104
|
+
|
1105
|
+
|
1106
|
+
—
|
1107
|
+
<div class='inline'>
|
1108
|
+
<p>If any mapping configuration is invalid</p>
|
1109
|
+
</div>
|
1110
|
+
|
1111
|
+
</li>
|
1112
|
+
|
1113
|
+
</ul>
|
1114
|
+
|
1115
|
+
</div><table class="source_code">
|
1116
|
+
<tr>
|
1117
|
+
<td>
|
1118
|
+
<pre class="lines">
|
1119
|
+
|
1120
|
+
|
1121
|
+
232
|
1122
|
+
233
|
1123
|
+
234
|
1124
|
+
235
|
1125
|
+
236
|
1126
|
+
237
|
1127
|
+
238
|
1128
|
+
239
|
1129
|
+
240
|
1130
|
+
241
|
1131
|
+
242
|
1132
|
+
243
|
1133
|
+
244
|
1134
|
+
245
|
1135
|
+
246</pre>
|
1136
|
+
</td>
|
1137
|
+
<td>
|
1138
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 232</span>
|
1139
|
+
|
1140
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_bulk_configure'>bulk_configure</span><span class='lparen'>(</span><span class='id identifier rubyid_mappings_config'>mappings_config</span><span class='rparen'>)</span>
|
1141
|
+
<span class='kw'>return</span> <span class='lbracket'>[</span><span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_mappings_config'>mappings_config</span><span class='period'>.</span><span class='id identifier rubyid_blank?'>blank?</span>
|
1142
|
+
|
1143
|
+
<span class='id identifier rubyid_mappings_config'>mappings_config</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_event_name'>event_name</span><span class='comma'>,</span> <span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
|
1144
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_config'>config</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>
|
1145
|
+
<span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='comma'>,</span> <span class='label'>backends:</span> <span class='id identifier rubyid_config'>config</span><span class='rparen'>)</span>
|
1146
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
1147
|
+
<span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='comma'>,</span> <span class='op'>**</span><span class='id identifier rubyid_config'>config</span><span class='rparen'>)</span>
|
1148
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:to_sym</span><span class='rparen'>)</span>
|
1149
|
+
<span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='comma'>,</span> <span class='label'>backends:</span> <span class='lbracket'>[</span><span class='id identifier rubyid_config'>config</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
1150
|
+
<span class='kw'>else</span>
|
1151
|
+
<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'>Invalid config for </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_event_name'>event_name</span><span class='embexpr_end'>}</span><span class='tstring_content'>: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_config'>config</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_content'>. Must be Array, Hash, or Symbol</span><span class='tstring_end'>"</span></span>
|
1152
|
+
<span class='kw'>end</span>
|
1153
|
+
<span class='kw'>end</span>
|
1154
|
+
<span class='kw'>end</span></pre>
|
1155
|
+
</td>
|
1156
|
+
</tr>
|
1157
|
+
</table>
|
1158
|
+
</div>
|
1159
|
+
|
1160
|
+
<div class="method_details ">
|
1161
|
+
<h3 class="signature " id="configured_events-instance_method">
|
1162
|
+
|
1163
|
+
#<strong>configured_events</strong> ⇒ <tt>Array<String></tt>
|
1164
|
+
|
1165
|
+
|
1166
|
+
|
1167
|
+
|
1168
|
+
|
1169
|
+
</h3><div class="docstring">
|
1170
|
+
<div class="discussion">
|
1171
|
+
|
1172
|
+
<p>Get a list of all configured event names</p>
|
1173
|
+
|
1174
|
+
|
1175
|
+
</div>
|
1176
|
+
</div>
|
1177
|
+
<div class="tags">
|
1178
|
+
|
1179
|
+
<p class="tag_title">Returns:</p>
|
1180
|
+
<ul class="return">
|
1181
|
+
|
1182
|
+
<li>
|
1183
|
+
|
1184
|
+
|
1185
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
1186
|
+
|
1187
|
+
|
1188
|
+
|
1189
|
+
—
|
1190
|
+
<div class='inline'>
|
1191
|
+
<p>All configured event names</p>
|
1192
|
+
</div>
|
1193
|
+
|
1194
|
+
</li>
|
1195
|
+
|
1196
|
+
</ul>
|
1197
|
+
|
1198
|
+
</div><table class="source_code">
|
1199
|
+
<tr>
|
1200
|
+
<td>
|
1201
|
+
<pre class="lines">
|
1202
|
+
|
1203
|
+
|
1204
|
+
198
|
1205
|
+
199
|
1206
|
+
200</pre>
|
1207
|
+
</td>
|
1208
|
+
<td>
|
1209
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 198</span>
|
1210
|
+
|
1211
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_configured_events'>configured_events</span>
|
1212
|
+
<span class='id identifier rubyid_mappings'>mappings</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span>
|
1213
|
+
<span class='kw'>end</span></pre>
|
1214
|
+
</td>
|
1215
|
+
</tr>
|
1216
|
+
</table>
|
1217
|
+
</div>
|
1218
|
+
|
1219
|
+
<div class="method_details ">
|
1220
|
+
<h3 class="signature " id="events_for_backend-instance_method">
|
1221
|
+
|
1222
|
+
#<strong>events_for_backend</strong>(backend) ⇒ <tt>Array<String></tt>
|
1223
|
+
|
1224
|
+
|
1225
|
+
|
1226
|
+
|
1227
|
+
|
1228
|
+
</h3><div class="docstring">
|
1229
|
+
<div class="discussion">
|
1230
|
+
|
1231
|
+
<p>Get all events that should route to a specific backend</p>
|
1232
|
+
|
1233
|
+
|
1234
|
+
</div>
|
1235
|
+
</div>
|
1236
|
+
<div class="tags">
|
1237
|
+
<p class="tag_title">Parameters:</p>
|
1238
|
+
<ul class="param">
|
1239
|
+
|
1240
|
+
<li>
|
1241
|
+
|
1242
|
+
<span class='name'>backend</span>
|
1243
|
+
|
1244
|
+
|
1245
|
+
<span class='type'>(<tt>Symbol</tt>)</span>
|
1246
|
+
|
1247
|
+
|
1248
|
+
|
1249
|
+
—
|
1250
|
+
<div class='inline'>
|
1251
|
+
<p>Backend type (:trace, :metrics, :logs)</p>
|
1252
|
+
</div>
|
1253
|
+
|
1254
|
+
</li>
|
1255
|
+
|
1256
|
+
</ul>
|
1257
|
+
|
1258
|
+
<p class="tag_title">Returns:</p>
|
1259
|
+
<ul class="return">
|
1260
|
+
|
1261
|
+
<li>
|
1262
|
+
|
1263
|
+
|
1264
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
1265
|
+
|
1266
|
+
|
1267
|
+
|
1268
|
+
—
|
1269
|
+
<div class='inline'>
|
1270
|
+
<p>List of event names</p>
|
1271
|
+
</div>
|
1272
|
+
|
1273
|
+
</li>
|
1274
|
+
|
1275
|
+
</ul>
|
1276
|
+
<p class="tag_title">Raises:</p>
|
1277
|
+
<ul class="raise">
|
1278
|
+
|
1279
|
+
<li>
|
1280
|
+
|
1281
|
+
|
1282
|
+
<span class='type'>(<tt>ArgumentError</tt>)</span>
|
1283
|
+
|
1284
|
+
|
1285
|
+
|
1286
|
+
—
|
1287
|
+
<div class='inline'>
|
1288
|
+
<p>If backend type is not recognized</p>
|
1289
|
+
</div>
|
1290
|
+
|
1291
|
+
</li>
|
1292
|
+
|
1293
|
+
</ul>
|
1294
|
+
|
1295
|
+
</div><table class="source_code">
|
1296
|
+
<tr>
|
1297
|
+
<td>
|
1298
|
+
<pre class="lines">
|
1299
|
+
|
1300
|
+
|
1301
|
+
156
|
1302
|
+
157
|
1303
|
+
158
|
1304
|
+
159
|
1305
|
+
160
|
1306
|
+
161
|
1307
|
+
162
|
1308
|
+
163
|
1309
|
+
164
|
1310
|
+
165
|
1311
|
+
166
|
1312
|
+
167</pre>
|
1313
|
+
</td>
|
1314
|
+
<td>
|
1315
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 156</span>
|
1316
|
+
|
1317
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_events_for_backend'>events_for_backend</span><span class='lparen'>(</span><span class='id identifier rubyid_backend'>backend</span><span class='rparen'>)</span>
|
1318
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_backend'>backend</span>
|
1319
|
+
<span class='kw'>when</span> <span class='symbol'>:trace</span><span class='comma'>,</span> <span class='symbol'>:traces</span>
|
1320
|
+
<span class='id identifier rubyid_trace_events'>trace_events</span>
|
1321
|
+
<span class='kw'>when</span> <span class='symbol'>:metric</span><span class='comma'>,</span> <span class='symbol'>:metrics</span>
|
1322
|
+
<span class='id identifier rubyid_metrics_events'>metrics_events</span>
|
1323
|
+
<span class='kw'>when</span> <span class='symbol'>:log</span><span class='comma'>,</span> <span class='symbol'>:logs</span>
|
1324
|
+
<span class='id identifier rubyid_log_events'>log_events</span>
|
1325
|
+
<span class='kw'>else</span>
|
1326
|
+
<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'>Unknown backend type: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_backend'>backend</span><span class='period'>.</span><span class='id identifier rubyid_inspect'>inspect</span><span class='embexpr_end'>}</span><span class='tstring_content'>. Valid backends: :trace, :metrics, :logs</span><span class='tstring_end'>"</span></span>
|
1327
|
+
<span class='kw'>end</span>
|
1328
|
+
<span class='kw'>end</span></pre>
|
1329
|
+
</td>
|
1330
|
+
</tr>
|
1331
|
+
</table>
|
1332
|
+
</div>
|
1333
|
+
|
1334
|
+
<div class="method_details ">
|
1335
|
+
<h3 class="signature " id="map-instance_method">
|
1336
|
+
|
1337
|
+
#<strong>map</strong>(event_name_or_hash, backends: [:trace]) ⇒ <tt><span class='object_link'><a href="EventMapping.html" title="Tasker::Telemetry::EventMapping (class)">EventMapping</a></span></tt>
|
1338
|
+
|
1339
|
+
|
1340
|
+
|
1341
|
+
|
1342
|
+
|
1343
|
+
</h3><div class="docstring">
|
1344
|
+
<div class="discussion">
|
1345
|
+
|
1346
|
+
<p>Map an event to specific telemetry backends</p>
|
1347
|
+
|
1348
|
+
|
1349
|
+
</div>
|
1350
|
+
</div>
|
1351
|
+
<div class="tags">
|
1352
|
+
<p class="tag_title">Parameters:</p>
|
1353
|
+
<ul class="param">
|
1354
|
+
|
1355
|
+
<li>
|
1356
|
+
|
1357
|
+
<span class='name'>event_name</span>
|
1358
|
+
|
1359
|
+
|
1360
|
+
<span class='type'>(<tt>String</tt>, <tt>Hash</tt>)</span>
|
1361
|
+
|
1362
|
+
|
1363
|
+
|
1364
|
+
—
|
1365
|
+
<div class='inline'>
|
1366
|
+
<p>Event name in dot notation, or hash with event => backends</p>
|
1367
|
+
</div>
|
1368
|
+
|
1369
|
+
</li>
|
1370
|
+
|
1371
|
+
<li>
|
1372
|
+
|
1373
|
+
<span class='name'>backends</span>
|
1374
|
+
|
1375
|
+
|
1376
|
+
<span class='type'>(<tt>Array<Symbol></tt>)</span>
|
1377
|
+
|
1378
|
+
|
1379
|
+
<em class="default">(defaults to: <tt>[:trace]</tt>)</em>
|
1380
|
+
|
1381
|
+
|
1382
|
+
—
|
1383
|
+
<div class='inline'>
|
1384
|
+
<p>List of backend types (:trace, :metrics, :logs)</p>
|
1385
|
+
</div>
|
1386
|
+
|
1387
|
+
</li>
|
1388
|
+
|
1389
|
+
<li>
|
1390
|
+
|
1391
|
+
<span class='name'>options</span>
|
1392
|
+
|
1393
|
+
|
1394
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1395
|
+
|
1396
|
+
|
1397
|
+
|
1398
|
+
—
|
1399
|
+
<div class='inline'>
|
1400
|
+
<p>Additional mapping options</p>
|
1401
|
+
</div>
|
1402
|
+
|
1403
|
+
</li>
|
1404
|
+
|
1405
|
+
</ul>
|
1406
|
+
|
1407
|
+
|
1408
|
+
|
1409
|
+
|
1410
|
+
|
1411
|
+
|
1412
|
+
|
1413
|
+
<p class="tag_title">Returns:</p>
|
1414
|
+
<ul class="return">
|
1415
|
+
|
1416
|
+
<li>
|
1417
|
+
|
1418
|
+
|
1419
|
+
<span class='type'>(<tt><span class='object_link'><a href="EventMapping.html" title="Tasker::Telemetry::EventMapping (class)">EventMapping</a></span></tt>)</span>
|
1420
|
+
|
1421
|
+
|
1422
|
+
|
1423
|
+
—
|
1424
|
+
<div class='inline'>
|
1425
|
+
<p>The created mapping</p>
|
1426
|
+
</div>
|
1427
|
+
|
1428
|
+
</li>
|
1429
|
+
|
1430
|
+
</ul>
|
1431
|
+
<p class="tag_title">Raises:</p>
|
1432
|
+
<ul class="raise">
|
1433
|
+
|
1434
|
+
<li>
|
1435
|
+
|
1436
|
+
|
1437
|
+
<span class='type'>(<tt>ArgumentError</tt>)</span>
|
1438
|
+
|
1439
|
+
|
1440
|
+
|
1441
|
+
</li>
|
1442
|
+
|
1443
|
+
</ul>
|
1444
|
+
|
1445
|
+
</div><table class="source_code">
|
1446
|
+
<tr>
|
1447
|
+
<td>
|
1448
|
+
<pre class="lines">
|
1449
|
+
|
1450
|
+
|
1451
|
+
79
|
1452
|
+
80
|
1453
|
+
81
|
1454
|
+
82
|
1455
|
+
83
|
1456
|
+
84
|
1457
|
+
85
|
1458
|
+
86
|
1459
|
+
87
|
1460
|
+
88
|
1461
|
+
89
|
1462
|
+
90
|
1463
|
+
91
|
1464
|
+
92
|
1465
|
+
93
|
1466
|
+
94
|
1467
|
+
95
|
1468
|
+
96
|
1469
|
+
97
|
1470
|
+
98
|
1471
|
+
99
|
1472
|
+
100</pre>
|
1473
|
+
</td>
|
1474
|
+
<td>
|
1475
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 79</span>
|
1476
|
+
|
1477
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name_or_hash'>event_name_or_hash</span><span class='comma'>,</span> <span class='label'>backends:</span> <span class='lbracket'>[</span><span class='symbol'>:trace</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='op'>**</span><span class='rparen'>)</span>
|
1478
|
+
<span class='comment'># Handle hash syntax: map 'event' => [:trace, :metrics]
|
1479
|
+
</span> <span class='kw'>if</span> <span class='id identifier rubyid_event_name_or_hash'>event_name_or_hash</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Hash</span><span class='rparen'>)</span>
|
1480
|
+
<span class='comment'># Extract the first (and typically only) hash pair
|
1481
|
+
</span> <span class='id identifier rubyid_event_name'>event_name</span><span class='comma'>,</span> <span class='id identifier rubyid_extracted_backends'>extracted_backends</span> <span class='op'>=</span> <span class='id identifier rubyid_event_name_or_hash'>event_name_or_hash</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span>
|
1482
|
+
<span class='id identifier rubyid_backends'>backends</span> <span class='op'>=</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_extracted_backends'>extracted_backends</span><span class='rparen'>)</span>
|
1483
|
+
<span class='kw'>else</span>
|
1484
|
+
<span class='id identifier rubyid_event_name'>event_name</span> <span class='op'>=</span> <span class='id identifier rubyid_event_name_or_hash'>event_name_or_hash</span>
|
1485
|
+
<span class='kw'>end</span>
|
1486
|
+
|
1487
|
+
<span class='comment'># Ensure we always have an event_name
|
1488
|
+
</span> <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'>event_name cannot be nil</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_event_name'>event_name</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
1489
|
+
|
1490
|
+
<span class='id identifier rubyid_mapping'>mapping</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="EventMapping.html" title="Tasker::Telemetry::EventMapping (class)">EventMapping</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="EventMapping.html#initialize-instance_method" title="Tasker::Telemetry::EventMapping#initialize (method)">new</a></span></span><span class='lparen'>(</span>
|
1491
|
+
<span class='label'>event_name:</span> <span class='id identifier rubyid_event_name'>event_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='comma'>,</span>
|
1492
|
+
<span class='label'>backends:</span> <span class='const'>Array</span><span class='lparen'>(</span><span class='id identifier rubyid_backends'>backends</span><span class='rparen'>)</span><span class='comma'>,</span>
|
1493
|
+
<span class='op'>**</span>
|
1494
|
+
<span class='rparen'>)</span>
|
1495
|
+
|
1496
|
+
<span class='id identifier rubyid_register_mapping'>register_mapping</span><span class='lparen'>(</span><span class='id identifier rubyid_mapping'>mapping</span><span class='rparen'>)</span>
|
1497
|
+
<span class='id identifier rubyid_mapping'>mapping</span>
|
1498
|
+
<span class='kw'>end</span></pre>
|
1499
|
+
</td>
|
1500
|
+
</tr>
|
1501
|
+
</table>
|
1502
|
+
</div>
|
1503
|
+
|
1504
|
+
<div class="method_details ">
|
1505
|
+
<h3 class="signature " id="mapping_exists?-instance_method">
|
1506
|
+
|
1507
|
+
#<strong>mapping_exists?</strong>(event_name) ⇒ <tt>Boolean</tt>
|
1508
|
+
|
1509
|
+
|
1510
|
+
|
1511
|
+
|
1512
|
+
|
1513
|
+
</h3><div class="docstring">
|
1514
|
+
<div class="discussion">
|
1515
|
+
|
1516
|
+
<p>Check if a mapping exists for a specific event</p>
|
1517
|
+
|
1518
|
+
|
1519
|
+
</div>
|
1520
|
+
</div>
|
1521
|
+
<div class="tags">
|
1522
|
+
<p class="tag_title">Parameters:</p>
|
1523
|
+
<ul class="param">
|
1524
|
+
|
1525
|
+
<li>
|
1526
|
+
|
1527
|
+
<span class='name'>event_name</span>
|
1528
|
+
|
1529
|
+
|
1530
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1531
|
+
|
1532
|
+
|
1533
|
+
|
1534
|
+
—
|
1535
|
+
<div class='inline'>
|
1536
|
+
<p>Event name</p>
|
1537
|
+
</div>
|
1538
|
+
|
1539
|
+
</li>
|
1540
|
+
|
1541
|
+
</ul>
|
1542
|
+
|
1543
|
+
<p class="tag_title">Returns:</p>
|
1544
|
+
<ul class="return">
|
1545
|
+
|
1546
|
+
<li>
|
1547
|
+
|
1548
|
+
|
1549
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1550
|
+
|
1551
|
+
|
1552
|
+
|
1553
|
+
—
|
1554
|
+
<div class='inline'>
|
1555
|
+
<p>True if mapping exists</p>
|
1556
|
+
</div>
|
1557
|
+
|
1558
|
+
</li>
|
1559
|
+
|
1560
|
+
</ul>
|
1561
|
+
|
1562
|
+
</div><table class="source_code">
|
1563
|
+
<tr>
|
1564
|
+
<td>
|
1565
|
+
<pre class="lines">
|
1566
|
+
|
1567
|
+
|
1568
|
+
114
|
1569
|
+
115
|
1570
|
+
116</pre>
|
1571
|
+
</td>
|
1572
|
+
<td>
|
1573
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 114</span>
|
1574
|
+
|
1575
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_mapping_exists?'>mapping_exists?</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='rparen'>)</span>
|
1576
|
+
<span class='id identifier rubyid_mappings'>mappings</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
1577
|
+
<span class='kw'>end</span></pre>
|
1578
|
+
</td>
|
1579
|
+
</tr>
|
1580
|
+
</table>
|
1581
|
+
</div>
|
1582
|
+
|
1583
|
+
<div class="method_details ">
|
1584
|
+
<h3 class="signature " id="mapping_for-instance_method">
|
1585
|
+
|
1586
|
+
#<strong>mapping_for</strong>(event_name) ⇒ <tt><span class='object_link'><a href="EventMapping.html" title="Tasker::Telemetry::EventMapping (class)">EventMapping</a></span></tt><sup>?</sup>
|
1587
|
+
|
1588
|
+
|
1589
|
+
|
1590
|
+
|
1591
|
+
|
1592
|
+
</h3><div class="docstring">
|
1593
|
+
<div class="discussion">
|
1594
|
+
|
1595
|
+
<p>Get the mapping for a specific event</p>
|
1596
|
+
|
1597
|
+
|
1598
|
+
</div>
|
1599
|
+
</div>
|
1600
|
+
<div class="tags">
|
1601
|
+
<p class="tag_title">Parameters:</p>
|
1602
|
+
<ul class="param">
|
1603
|
+
|
1604
|
+
<li>
|
1605
|
+
|
1606
|
+
<span class='name'>event_name</span>
|
1607
|
+
|
1608
|
+
|
1609
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1610
|
+
|
1611
|
+
|
1612
|
+
|
1613
|
+
—
|
1614
|
+
<div class='inline'>
|
1615
|
+
<p>Event name</p>
|
1616
|
+
</div>
|
1617
|
+
|
1618
|
+
</li>
|
1619
|
+
|
1620
|
+
</ul>
|
1621
|
+
|
1622
|
+
<p class="tag_title">Returns:</p>
|
1623
|
+
<ul class="return">
|
1624
|
+
|
1625
|
+
<li>
|
1626
|
+
|
1627
|
+
|
1628
|
+
<span class='type'>(<tt><span class='object_link'><a href="EventMapping.html" title="Tasker::Telemetry::EventMapping (class)">EventMapping</a></span></tt>, <tt>nil</tt>)</span>
|
1629
|
+
|
1630
|
+
|
1631
|
+
|
1632
|
+
—
|
1633
|
+
<div class='inline'>
|
1634
|
+
<p>The mapping or nil if not found</p>
|
1635
|
+
</div>
|
1636
|
+
|
1637
|
+
</li>
|
1638
|
+
|
1639
|
+
</ul>
|
1640
|
+
|
1641
|
+
</div><table class="source_code">
|
1642
|
+
<tr>
|
1643
|
+
<td>
|
1644
|
+
<pre class="lines">
|
1645
|
+
|
1646
|
+
|
1647
|
+
106
|
1648
|
+
107
|
1649
|
+
108</pre>
|
1650
|
+
</td>
|
1651
|
+
<td>
|
1652
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 106</span>
|
1653
|
+
|
1654
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_mapping_for'>mapping_for</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='rparen'>)</span>
|
1655
|
+
<span class='id identifier rubyid_mappings'>mappings</span><span class='lbracket'>[</span><span class='id identifier rubyid_event_name'>event_name</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rbracket'>]</span>
|
1656
|
+
<span class='kw'>end</span></pre>
|
1657
|
+
</td>
|
1658
|
+
</tr>
|
1659
|
+
</table>
|
1660
|
+
</div>
|
1661
|
+
|
1662
|
+
<div class="method_details ">
|
1663
|
+
<h3 class="signature " id="reset!-instance_method">
|
1664
|
+
|
1665
|
+
#<strong>reset!</strong> ⇒ <tt>void</tt>
|
1666
|
+
|
1667
|
+
|
1668
|
+
|
1669
|
+
|
1670
|
+
|
1671
|
+
</h3><div class="docstring">
|
1672
|
+
<div class="discussion">
|
1673
|
+
<p class="note returns_void">This method returns an undefined value.</p>
|
1674
|
+
<p>Reset all mappings (primarily for testing)</p>
|
1675
|
+
|
1676
|
+
|
1677
|
+
</div>
|
1678
|
+
</div>
|
1679
|
+
<div class="tags">
|
1680
|
+
|
1681
|
+
|
1682
|
+
</div><table class="source_code">
|
1683
|
+
<tr>
|
1684
|
+
<td>
|
1685
|
+
<pre class="lines">
|
1686
|
+
|
1687
|
+
|
1688
|
+
187
|
1689
|
+
188
|
1690
|
+
189
|
1691
|
+
190
|
1692
|
+
191
|
1693
|
+
192
|
1694
|
+
193</pre>
|
1695
|
+
</td>
|
1696
|
+
<td>
|
1697
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 187</span>
|
1698
|
+
|
1699
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_reset!'>reset!</span>
|
1700
|
+
<span class='ivar'>@mappings</span><span class='period'>.</span><span class='id identifier rubyid_clear'>clear</span>
|
1701
|
+
<span class='ivar'>@trace_events</span><span class='period'>.</span><span class='id identifier rubyid_clear'>clear</span>
|
1702
|
+
<span class='ivar'>@metrics_events</span><span class='period'>.</span><span class='id identifier rubyid_clear'>clear</span>
|
1703
|
+
<span class='ivar'>@log_events</span><span class='period'>.</span><span class='id identifier rubyid_clear'>clear</span>
|
1704
|
+
<span class='id identifier rubyid_load_default_mappings'>load_default_mappings</span>
|
1705
|
+
<span class='kw'>end</span></pre>
|
1706
|
+
</td>
|
1707
|
+
</tr>
|
1708
|
+
</table>
|
1709
|
+
</div>
|
1710
|
+
|
1711
|
+
<div class="method_details ">
|
1712
|
+
<h3 class="signature " id="route_event-instance_method">
|
1713
|
+
|
1714
|
+
#<strong>route_event</strong>(event_name, payload = {}) ⇒ <tt>Hash</tt>
|
1715
|
+
|
1716
|
+
|
1717
|
+
|
1718
|
+
|
1719
|
+
|
1720
|
+
</h3><div class="docstring">
|
1721
|
+
<div class="discussion">
|
1722
|
+
|
1723
|
+
<p>Route an event to appropriate backends based on configuration</p>
|
1724
|
+
|
1725
|
+
<p>This is the core routing method that directs events to traces, metrics, and logs based on their configured mapping.</p>
|
1726
|
+
|
1727
|
+
|
1728
|
+
</div>
|
1729
|
+
</div>
|
1730
|
+
<div class="tags">
|
1731
|
+
<p class="tag_title">Parameters:</p>
|
1732
|
+
<ul class="param">
|
1733
|
+
|
1734
|
+
<li>
|
1735
|
+
|
1736
|
+
<span class='name'>event_name</span>
|
1737
|
+
|
1738
|
+
|
1739
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1740
|
+
|
1741
|
+
|
1742
|
+
|
1743
|
+
—
|
1744
|
+
<div class='inline'>
|
1745
|
+
<p>The lifecycle event name</p>
|
1746
|
+
</div>
|
1747
|
+
|
1748
|
+
</li>
|
1749
|
+
|
1750
|
+
<li>
|
1751
|
+
|
1752
|
+
<span class='name'>payload</span>
|
1753
|
+
|
1754
|
+
|
1755
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1756
|
+
|
1757
|
+
|
1758
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
1759
|
+
|
1760
|
+
|
1761
|
+
—
|
1762
|
+
<div class='inline'>
|
1763
|
+
<p>Event payload data</p>
|
1764
|
+
</div>
|
1765
|
+
|
1766
|
+
</li>
|
1767
|
+
|
1768
|
+
</ul>
|
1769
|
+
|
1770
|
+
<p class="tag_title">Returns:</p>
|
1771
|
+
<ul class="return">
|
1772
|
+
|
1773
|
+
<li>
|
1774
|
+
|
1775
|
+
|
1776
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
1777
|
+
|
1778
|
+
|
1779
|
+
|
1780
|
+
—
|
1781
|
+
<div class='inline'>
|
1782
|
+
<p>Results from each backend (backend => success boolean)</p>
|
1783
|
+
</div>
|
1784
|
+
|
1785
|
+
</li>
|
1786
|
+
|
1787
|
+
</ul>
|
1788
|
+
|
1789
|
+
</div><table class="source_code">
|
1790
|
+
<tr>
|
1791
|
+
<td>
|
1792
|
+
<pre class="lines">
|
1793
|
+
|
1794
|
+
|
1795
|
+
210
|
1796
|
+
211
|
1797
|
+
212
|
1798
|
+
213
|
1799
|
+
214
|
1800
|
+
215
|
1801
|
+
216
|
1802
|
+
217
|
1803
|
+
218
|
1804
|
+
219
|
1805
|
+
220
|
1806
|
+
221
|
1807
|
+
222
|
1808
|
+
223
|
1809
|
+
224
|
1810
|
+
225</pre>
|
1811
|
+
</td>
|
1812
|
+
<td>
|
1813
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 210</span>
|
1814
|
+
|
1815
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_route_event'>route_event</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='comma'>,</span> <span class='id identifier rubyid_payload'>payload</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
1816
|
+
<span class='id identifier rubyid_results'>results</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
1817
|
+
<span class='id identifier rubyid_mapping'>mapping</span> <span class='op'>=</span> <span class='id identifier rubyid_mapping_for'>mapping_for</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='rparen'>)</span>
|
1818
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_results'>results</span> <span class='kw'>unless</span> <span class='id identifier rubyid_mapping'>mapping</span><span class='op'>&.</span><span class='id identifier rubyid_active?'>active?</span>
|
1819
|
+
|
1820
|
+
<span class='comment'># Route to metrics backend if configured
|
1821
|
+
</span> <span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='symbol'>:metrics</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="MetricsBackend.html" title="Tasker::Telemetry::MetricsBackend (class)">MetricsBackend</a></span></span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_handle_event'>handle_event</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='comma'>,</span> <span class='id identifier rubyid_payload'>payload</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_mapping'>mapping</span><span class='period'>.</span><span class='id identifier rubyid_routes_to_metrics?'>routes_to_metrics?</span>
|
1822
|
+
|
1823
|
+
<span class='comment'># Route to trace backend if configured
|
1824
|
+
</span> <span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='symbol'>:traces</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="TraceBackend.html" title="Tasker::Telemetry::TraceBackend (class)">TraceBackend</a></span></span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_handle_event'>handle_event</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='comma'>,</span> <span class='id identifier rubyid_payload'>payload</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_mapping'>mapping</span><span class='period'>.</span><span class='id identifier rubyid_routes_to_traces?'>routes_to_traces?</span>
|
1825
|
+
|
1826
|
+
<span class='comment'># Route to log backend if configured
|
1827
|
+
</span> <span class='id identifier rubyid_results'>results</span><span class='lbracket'>[</span><span class='symbol'>:logs</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="LogBackend.html" title="Tasker::Telemetry::LogBackend (class)">LogBackend</a></span></span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span><span class='period'>.</span><span class='id identifier rubyid_handle_event'>handle_event</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='comma'>,</span> <span class='id identifier rubyid_payload'>payload</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_mapping'>mapping</span><span class='period'>.</span><span class='id identifier rubyid_routes_to_logs?'>routes_to_logs?</span>
|
1828
|
+
|
1829
|
+
<span class='id identifier rubyid_results'>results</span>
|
1830
|
+
<span class='kw'>end</span></pre>
|
1831
|
+
</td>
|
1832
|
+
</tr>
|
1833
|
+
</table>
|
1834
|
+
</div>
|
1835
|
+
|
1836
|
+
<div class="method_details ">
|
1837
|
+
<h3 class="signature " id="routes_to_logs?-instance_method">
|
1838
|
+
|
1839
|
+
#<strong>routes_to_logs?</strong>(event_name) ⇒ <tt>Boolean</tt>
|
1840
|
+
|
1841
|
+
|
1842
|
+
|
1843
|
+
|
1844
|
+
|
1845
|
+
</h3><div class="docstring">
|
1846
|
+
<div class="discussion">
|
1847
|
+
|
1848
|
+
<p>Check if an event routes to logs</p>
|
1849
|
+
|
1850
|
+
|
1851
|
+
</div>
|
1852
|
+
</div>
|
1853
|
+
<div class="tags">
|
1854
|
+
<p class="tag_title">Parameters:</p>
|
1855
|
+
<ul class="param">
|
1856
|
+
|
1857
|
+
<li>
|
1858
|
+
|
1859
|
+
<span class='name'>event_name</span>
|
1860
|
+
|
1861
|
+
|
1862
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1863
|
+
|
1864
|
+
|
1865
|
+
|
1866
|
+
—
|
1867
|
+
<div class='inline'>
|
1868
|
+
<p>Event name</p>
|
1869
|
+
</div>
|
1870
|
+
|
1871
|
+
</li>
|
1872
|
+
|
1873
|
+
</ul>
|
1874
|
+
|
1875
|
+
<p class="tag_title">Returns:</p>
|
1876
|
+
<ul class="return">
|
1877
|
+
|
1878
|
+
<li>
|
1879
|
+
|
1880
|
+
|
1881
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1882
|
+
|
1883
|
+
|
1884
|
+
|
1885
|
+
—
|
1886
|
+
<div class='inline'>
|
1887
|
+
<p>True if the event routes to logs</p>
|
1888
|
+
</div>
|
1889
|
+
|
1890
|
+
</li>
|
1891
|
+
|
1892
|
+
</ul>
|
1893
|
+
|
1894
|
+
</div><table class="source_code">
|
1895
|
+
<tr>
|
1896
|
+
<td>
|
1897
|
+
<pre class="lines">
|
1898
|
+
|
1899
|
+
|
1900
|
+
144
|
1901
|
+
145
|
1902
|
+
146
|
1903
|
+
147
|
1904
|
+
148
|
1905
|
+
149</pre>
|
1906
|
+
</td>
|
1907
|
+
<td>
|
1908
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 144</span>
|
1909
|
+
|
1910
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_routes_to_logs?'>routes_to_logs?</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='rparen'>)</span>
|
1911
|
+
<span class='id identifier rubyid_mapping'>mapping</span> <span class='op'>=</span> <span class='id identifier rubyid_mapping_for'>mapping_for</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='rparen'>)</span>
|
1912
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='id identifier rubyid_mapping'>mapping</span>
|
1913
|
+
|
1914
|
+
<span class='id identifier rubyid_mapping'>mapping</span><span class='period'>.</span><span class='id identifier rubyid_active?'>active?</span> <span class='op'>&&</span> <span class='id identifier rubyid_mapping'>mapping</span><span class='period'>.</span><span class='id identifier rubyid_routes_to_logs?'>routes_to_logs?</span>
|
1915
|
+
<span class='kw'>end</span></pre>
|
1916
|
+
</td>
|
1917
|
+
</tr>
|
1918
|
+
</table>
|
1919
|
+
</div>
|
1920
|
+
|
1921
|
+
<div class="method_details ">
|
1922
|
+
<h3 class="signature " id="routes_to_metrics?-instance_method">
|
1923
|
+
|
1924
|
+
#<strong>routes_to_metrics?</strong>(event_name) ⇒ <tt>Boolean</tt>
|
1925
|
+
|
1926
|
+
|
1927
|
+
|
1928
|
+
|
1929
|
+
|
1930
|
+
</h3><div class="docstring">
|
1931
|
+
<div class="discussion">
|
1932
|
+
|
1933
|
+
<p>Check if an event routes to metrics</p>
|
1934
|
+
|
1935
|
+
|
1936
|
+
</div>
|
1937
|
+
</div>
|
1938
|
+
<div class="tags">
|
1939
|
+
<p class="tag_title">Parameters:</p>
|
1940
|
+
<ul class="param">
|
1941
|
+
|
1942
|
+
<li>
|
1943
|
+
|
1944
|
+
<span class='name'>event_name</span>
|
1945
|
+
|
1946
|
+
|
1947
|
+
<span class='type'>(<tt>String</tt>)</span>
|
1948
|
+
|
1949
|
+
|
1950
|
+
|
1951
|
+
—
|
1952
|
+
<div class='inline'>
|
1953
|
+
<p>Event name</p>
|
1954
|
+
</div>
|
1955
|
+
|
1956
|
+
</li>
|
1957
|
+
|
1958
|
+
</ul>
|
1959
|
+
|
1960
|
+
<p class="tag_title">Returns:</p>
|
1961
|
+
<ul class="return">
|
1962
|
+
|
1963
|
+
<li>
|
1964
|
+
|
1965
|
+
|
1966
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1967
|
+
|
1968
|
+
|
1969
|
+
|
1970
|
+
—
|
1971
|
+
<div class='inline'>
|
1972
|
+
<p>True if the event routes to metrics</p>
|
1973
|
+
</div>
|
1974
|
+
|
1975
|
+
</li>
|
1976
|
+
|
1977
|
+
</ul>
|
1978
|
+
|
1979
|
+
</div><table class="source_code">
|
1980
|
+
<tr>
|
1981
|
+
<td>
|
1982
|
+
<pre class="lines">
|
1983
|
+
|
1984
|
+
|
1985
|
+
133
|
1986
|
+
134
|
1987
|
+
135
|
1988
|
+
136
|
1989
|
+
137
|
1990
|
+
138</pre>
|
1991
|
+
</td>
|
1992
|
+
<td>
|
1993
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 133</span>
|
1994
|
+
|
1995
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_routes_to_metrics?'>routes_to_metrics?</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='rparen'>)</span>
|
1996
|
+
<span class='id identifier rubyid_mapping'>mapping</span> <span class='op'>=</span> <span class='id identifier rubyid_mapping_for'>mapping_for</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='rparen'>)</span>
|
1997
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='id identifier rubyid_mapping'>mapping</span>
|
1998
|
+
|
1999
|
+
<span class='id identifier rubyid_mapping'>mapping</span><span class='period'>.</span><span class='id identifier rubyid_active?'>active?</span> <span class='op'>&&</span> <span class='id identifier rubyid_mapping'>mapping</span><span class='period'>.</span><span class='id identifier rubyid_routes_to_metrics?'>routes_to_metrics?</span>
|
2000
|
+
<span class='kw'>end</span></pre>
|
2001
|
+
</td>
|
2002
|
+
</tr>
|
2003
|
+
</table>
|
2004
|
+
</div>
|
2005
|
+
|
2006
|
+
<div class="method_details ">
|
2007
|
+
<h3 class="signature " id="routes_to_traces?-instance_method">
|
2008
|
+
|
2009
|
+
#<strong>routes_to_traces?</strong>(event_name) ⇒ <tt>Boolean</tt>
|
2010
|
+
|
2011
|
+
|
2012
|
+
|
2013
|
+
|
2014
|
+
|
2015
|
+
</h3><div class="docstring">
|
2016
|
+
<div class="discussion">
|
2017
|
+
|
2018
|
+
<p>Check if an event routes to traces</p>
|
2019
|
+
|
2020
|
+
|
2021
|
+
</div>
|
2022
|
+
</div>
|
2023
|
+
<div class="tags">
|
2024
|
+
<p class="tag_title">Parameters:</p>
|
2025
|
+
<ul class="param">
|
2026
|
+
|
2027
|
+
<li>
|
2028
|
+
|
2029
|
+
<span class='name'>event_name</span>
|
2030
|
+
|
2031
|
+
|
2032
|
+
<span class='type'>(<tt>String</tt>)</span>
|
2033
|
+
|
2034
|
+
|
2035
|
+
|
2036
|
+
—
|
2037
|
+
<div class='inline'>
|
2038
|
+
<p>Event name</p>
|
2039
|
+
</div>
|
2040
|
+
|
2041
|
+
</li>
|
2042
|
+
|
2043
|
+
</ul>
|
2044
|
+
|
2045
|
+
<p class="tag_title">Returns:</p>
|
2046
|
+
<ul class="return">
|
2047
|
+
|
2048
|
+
<li>
|
2049
|
+
|
2050
|
+
|
2051
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
2052
|
+
|
2053
|
+
|
2054
|
+
|
2055
|
+
—
|
2056
|
+
<div class='inline'>
|
2057
|
+
<p>True if the event routes to traces</p>
|
2058
|
+
</div>
|
2059
|
+
|
2060
|
+
</li>
|
2061
|
+
|
2062
|
+
</ul>
|
2063
|
+
|
2064
|
+
</div><table class="source_code">
|
2065
|
+
<tr>
|
2066
|
+
<td>
|
2067
|
+
<pre class="lines">
|
2068
|
+
|
2069
|
+
|
2070
|
+
122
|
2071
|
+
123
|
2072
|
+
124
|
2073
|
+
125
|
2074
|
+
126
|
2075
|
+
127</pre>
|
2076
|
+
</td>
|
2077
|
+
<td>
|
2078
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 122</span>
|
2079
|
+
|
2080
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_routes_to_traces?'>routes_to_traces?</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='rparen'>)</span>
|
2081
|
+
<span class='id identifier rubyid_mapping'>mapping</span> <span class='op'>=</span> <span class='id identifier rubyid_mapping_for'>mapping_for</span><span class='lparen'>(</span><span class='id identifier rubyid_event_name'>event_name</span><span class='rparen'>)</span>
|
2082
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='id identifier rubyid_mapping'>mapping</span>
|
2083
|
+
|
2084
|
+
<span class='id identifier rubyid_mapping'>mapping</span><span class='period'>.</span><span class='id identifier rubyid_active?'>active?</span> <span class='op'>&&</span> <span class='id identifier rubyid_mapping'>mapping</span><span class='period'>.</span><span class='id identifier rubyid_routes_to_traces?'>routes_to_traces?</span>
|
2085
|
+
<span class='kw'>end</span></pre>
|
2086
|
+
</td>
|
2087
|
+
</tr>
|
2088
|
+
</table>
|
2089
|
+
</div>
|
2090
|
+
|
2091
|
+
<div class="method_details ">
|
2092
|
+
<h3 class="signature " id="routing_stats-instance_method">
|
2093
|
+
|
2094
|
+
#<strong>routing_stats</strong> ⇒ <tt>Hash</tt>
|
2095
|
+
|
2096
|
+
|
2097
|
+
|
2098
|
+
|
2099
|
+
|
2100
|
+
</h3><div class="docstring">
|
2101
|
+
<div class="discussion">
|
2102
|
+
|
2103
|
+
<p>Get routing statistics for debugging</p>
|
2104
|
+
|
2105
|
+
|
2106
|
+
</div>
|
2107
|
+
</div>
|
2108
|
+
<div class="tags">
|
2109
|
+
|
2110
|
+
<p class="tag_title">Returns:</p>
|
2111
|
+
<ul class="return">
|
2112
|
+
|
2113
|
+
<li>
|
2114
|
+
|
2115
|
+
|
2116
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
2117
|
+
|
2118
|
+
|
2119
|
+
|
2120
|
+
—
|
2121
|
+
<div class='inline'>
|
2122
|
+
<p>Statistics about current routing configuration</p>
|
2123
|
+
</div>
|
2124
|
+
|
2125
|
+
</li>
|
2126
|
+
|
2127
|
+
</ul>
|
2128
|
+
|
2129
|
+
</div><table class="source_code">
|
2130
|
+
<tr>
|
2131
|
+
<td>
|
2132
|
+
<pre class="lines">
|
2133
|
+
|
2134
|
+
|
2135
|
+
172
|
2136
|
+
173
|
2137
|
+
174
|
2138
|
+
175
|
2139
|
+
176
|
2140
|
+
177
|
2141
|
+
178
|
2142
|
+
179
|
2143
|
+
180
|
2144
|
+
181
|
2145
|
+
182</pre>
|
2146
|
+
</td>
|
2147
|
+
<td>
|
2148
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/telemetry/event_router.rb', line 172</span>
|
2149
|
+
|
2150
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_routing_stats'>routing_stats</span>
|
2151
|
+
<span class='lbrace'>{</span>
|
2152
|
+
<span class='label'>total_mappings:</span> <span class='id identifier rubyid_mappings'>mappings</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
2153
|
+
<span class='label'>trace_events:</span> <span class='id identifier rubyid_trace_events'>trace_events</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
2154
|
+
<span class='label'>metrics_events:</span> <span class='id identifier rubyid_metrics_events'>metrics_events</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
2155
|
+
<span class='label'>log_events:</span> <span class='id identifier rubyid_log_events'>log_events</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span><span class='comma'>,</span>
|
2156
|
+
<span class='label'>enabled_mappings:</span> <span class='id identifier rubyid_mappings'>mappings</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:enabled</span><span class='rparen'>)</span><span class='comma'>,</span>
|
2157
|
+
<span class='label'>high_priority:</span> <span class='id identifier rubyid_mappings'>mappings</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_m'>m</span><span class='op'>|</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_priority'>priority</span> <span class='op'>==</span> <span class='symbol'>:high</span> <span class='rbrace'>}</span><span class='comma'>,</span>
|
2158
|
+
<span class='label'>sampled_mappings:</span> <span class='id identifier rubyid_mappings'>mappings</span><span class='period'>.</span><span class='id identifier rubyid_values'>values</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_m'>m</span><span class='op'>|</span> <span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_sampling_rate'>sampling_rate</span> <span class='op'><</span> <span class='float'>1.0</span> <span class='rbrace'>}</span>
|
2159
|
+
<span class='rbrace'>}</span>
|
2160
|
+
<span class='kw'>end</span></pre>
|
2161
|
+
</td>
|
2162
|
+
</tr>
|
2163
|
+
</table>
|
2164
|
+
</div>
|
2165
|
+
|
2166
|
+
</div>
|
2167
|
+
|
2168
|
+
</div>
|
2169
|
+
|
2170
|
+
<div id="footer">
|
2171
|
+
Generated on Tue Jul 1 16:47:37 2025 by
|
2172
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
2173
|
+
0.9.37 (ruby-3.2.4).
|
2174
|
+
</div>
|
2175
|
+
|
2176
|
+
</div>
|
2177
|
+
</body>
|
2178
|
+
</html>
|