Skip to main content

Logging

Default scopes

Web server scope

By default we set the global scope for sentry here.

It contains the general information such as the app mode name, the referer hostname, the current user id... See the ApplicationController to learn more about this.

Jobs scope

In the ApplicationJob parent class, we do also set the job_id in the scope here.

Specific scope

Following the same logic in the ApplicationController or the ApplicationJob, you can set more tags anywhere in your code that is used in jobs or controllers, here's an example:

class ProcessOrderService
def initialize(order, user)
@order = order
@user = user
end

def call
Sentry.configure_scope do |scope|
scope.set_tags(
service: 'ProcessOrderService',
order_id: @order.id.to_s, # Convert to string for Sentry
user_id: @user&.id&.to_s,
order_type: @order.type
)
end

# Your service logic here
@order.update(status: 'processed')
Rails.logger.info("Order #{@order.id} processed for user #{@user&.id}")
end
end

We can do the same in jobs.

Releases

Go to this URL to see new releases https://namtek-consulting-services.sentry.io/releases/. You can also view the introduced issues by a given release and the adoption rates.

Monitoring

You can monitor and search transactions (logs) in sentry at https://namtek-consulting-services.sentry.io/discover/results.

You have there 2 tabs:

  • Errors: error events
  • Transactions: all events

You can search by tags set in rails, as in the webserver here.

Here is an example where events (job runs/web requests) are filtered by tags: sentry.