You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are generic rules for messaging systems in the documentation, but I'm looking for ideas and verification for naming scheduling systems. Easiest to think about *nix CRON system where there's scheduled tasks running and there's both load (how many running at the time and how fast each job runs).
There's earlier thread, but there was little output from chosen names and patterns.
My specific scenario is Quartz.NET (a .NET scheduling system, ported from its Java counterpart). At high level:
jobs written in code (a .NET type implementing a callback interface)
multiple triggers can target jobs, they can be CRON-based or say timer of every 5 seconds and some repeat count (or indefinite)
there can be multiple nodes (processes and/or machines) processing job invocation when trigger's fire time is reached
I'm working on built-in support for exposing traces and metrics here. So thus far naming and data is as follows, feedback and ideas appreciated!
💡 I'd also like to raise a question whether such scheduling/job invocation concept should be formalized as there are many such libraries and services out there in the wild.
Activity names
Quartz.Job.Execute - job is being executed, the actual thing the library does
Quartz.Job.Vetoed - job execution was vetoed for some reason, very rare
Activity tags
scheduler.name - the name of scheduler, e.g. "Warehouse"
scheduler.id - instance id, e.g. "warehouse-node-02"
fire.instance.id - unique fire id, think primary key in database
trigger.group - trigger group, e.g. "Maintenance"
trigger.name - name "HourlyCheck"
job.type - the .NET type in question hosting the running code, e.g. "WareHouseCleanupJob", bound to code
job.group - job group, e.g. "Maintenance"
job.name - job's name "MaintenanceJob"
Meters
These feel like a more generic concept than Quartz!
scheduling.quartz.execute - counter, total number job jobs that have been executed
scheduling.quartz.execute.errors - counter, error that have been raised during job execution
scheduling.quartz.execute.active, counter - currently running job count
scheduling.quartz.execute.duration, histogram - how long job execution took
Meters have the tags
trigger.group
trigger.name
job.group
job.name
scheduling.quartz.exception_type, only if exception occurred
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
There are generic rules for messaging systems in the documentation, but I'm looking for ideas and verification for naming scheduling systems. Easiest to think about *nix CRON system where there's scheduled tasks running and there's both load (how many running at the time and how fast each job runs).
There's earlier thread, but there was little output from chosen names and patterns.
My specific scenario is Quartz.NET (a .NET scheduling system, ported from its Java counterpart). At high level:
I'm working on built-in support for exposing traces and metrics here. So thus far naming and data is as follows, feedback and ideas appreciated!
💡 I'd also like to raise a question whether such scheduling/job invocation concept should be formalized as there are many such libraries and services out there in the wild.
Activity names
Quartz.Job.Execute
- job is being executed, the actual thing the library doesQuartz.Job.Vetoed
- job execution was vetoed for some reason, very rareActivity tags
scheduler.name
- the name of scheduler, e.g. "Warehouse"scheduler.id
- instance id, e.g. "warehouse-node-02"fire.instance.id
- unique fire id, think primary key in databasetrigger.group
- trigger group, e.g. "Maintenance"trigger.name
- name "HourlyCheck"job.type
- the .NET type in question hosting the running code, e.g. "WareHouseCleanupJob", bound to codejob.group
- job group, e.g. "Maintenance"job.name
- job's name "MaintenanceJob"Meters
These feel like a more generic concept than Quartz!
scheduling.quartz.execute
- counter, total number job jobs that have been executedscheduling.quartz.execute.errors
- counter, error that have been raised during job executionscheduling.quartz.execute.active
, counter - currently running job countscheduling.quartz.execute.duration
, histogram - how long job execution tookMeters have the tags
trigger.group
trigger.name
job.group
job.name
scheduling.quartz.exception_type
, only if exception occurredBeta Was this translation helpful? Give feedback.
All reactions