Tagging System
Organize and filter your performance data with custom tags
Overview
Rails Pulse includes a flexible tagging system that allows you to categorize and organize your performance data. Tag routes, requests, queries, jobs, and job runs with custom labels to better organize and filter your monitoring data.
Tags help you:
- Organize data by environment, priority, team, or any custom category
- Filter quickly to find specific issues or patterns
- Track progress by marking items as “investigating” or “resolved”
- Collaborate by categorizing work across teams
Configuring Tags
Define available tags in your Rails Pulse initializer. Tags are shared across all record types (routes, requests, queries, jobs, and job runs).
RailsPulse.configure do |config|
config.tags = [
"production",
"staging",
"critical",
"needs-optimization",
"high-traffic",
"background-job"
]
end
Note: After adding or modifying tags, restart your Rails server for changes to take effect.
Using Tags
Tagging from the UI
You can tag any route, request, query, job, or job run directly from the Rails Pulse dashboard:
- Navigate to any route, request, query, job, or job run detail page
- Click the ”+ tag” button next to the record
- Select from your configured tags in the dropdown
- Remove tags by clicking the × button on any tag badge
Programmatic Tagging
You can also manage tags programmatically using the Rails console or in your application code:
# Tag a route
route = RailsPulse::Route.find_by(path: "/api/users")
route.add_tag("critical")
route.add_tag("high-traffic")
# Tag a query
query = RailsPulse::Query.find_by(normalized_sql: "SELECT * FROM users WHERE id = ?")
query.add_tag("needs-optimization")
# Tag a job
job = RailsPulse::Job.find_by(name: "UserNotificationJob")
job.add_tag("high-priority")
job.add_tag("user-facing")
# Tag a specific job run
job_run = RailsPulse::JobRun.find_by(run_id: "abc123")
job_run.add_tag("investigated")
# Remove a tag
route.remove_tag("critical")
# Check if has tag
route.has_tag?("production") # => true
# Get all tags for a record
route.tag_list # => ["high-traffic"]
Filtering by Tags
Use the global filters modal to filter performance data by tags throughout the dashboard:
- Click the filter icon in the top navigation
- Select one or more tags from the tag selector
- Apply filters to see only records with those tags
- Clear filters to return to the full data view
Tags appear as color-coded badges in all data tables for quick visual identification. You can combine multiple filters to narrow down your search.
Common Tagging Strategies
Here are some proven strategies for organizing your performance data with tags:
By Environment
config.tags = ["production", "staging", "development"]
Useful for tracking issues specific to certain environments, especially when using the same Rails Pulse instance across multiple environments.
By Priority
config.tags = ["critical", "high", "medium", "low"]
Helps prioritize performance issues and focus on the most impactful optimizations first.
By Status
config.tags = ["needs-optimization", "investigating", "resolved", "monitoring"]
Track the lifecycle of performance issues from discovery through resolution.
By Type
config.tags = ["api", "background-job", "user-facing", "admin", "internal"]
Categorize endpoints and jobs by their function or audience.
By Team
config.tags = ["team-frontend", "team-backend", "team-data", "team-mobile"]
In larger organizations, assign ownership of routes and jobs to specific teams.
Combined Strategy
For maximum flexibility, combine multiple strategies:
config.tags = [
# Environment
"production", "staging",
# Priority
"critical", "high", "medium", "low",
# Status
"needs-optimization", "investigating", "resolved",
# Type
"api", "background-job", "user-facing", "admin",
# Team
"team-frontend", "team-backend", "team-data"
]
Best Practices
Keep Tags Concise
Use short, descriptive names (1-3 words) that are easy to scan in the UI. Avoid lengthy descriptions.
Establish Conventions
Document your tagging strategy and naming conventions for your team. Consistency makes tags more useful.
Don’t Over-Tag
Start with 10-15 essential tags. Too many tags can make filtering overwhelming. Add more as needed.
Use Tags for Actions
Tags like “needs-optimization” or “investigating” indicate actionable items, making it easy to track TODOs.
Clean Up Obsolete Tags
Periodically review and remove tags that are no longer relevant. Remove unused tags from the configuration.
Tag Early
Tag routes and jobs as soon as you identify patterns or issues. This builds a valuable knowledge base over time.
Next Steps
Advanced Configuration
Explore performance thresholds, filtering, and data cleanup options.
Performance Impact
Learn about Rails Pulse’s performance overhead and optimization strategies.