Skip to content

Instantly share code, notes, and snippets.

View stympy's full-sized avatar

Benjamin Curtis stympy

View GitHub Profile
@stympy
stympy / aws.yml
Last active March 1, 2025 05:20
Loading multiple encrypted credentials files in Rails
access_key_id: 123
secret_access_key: 456
@stympy
stympy / honeybadger.js
Last active February 25, 2025 17:14
Override javascript error fingerprint for Honeybadger
import Honeybadger from "@honeybadger-io/js";
const honeybadger = Honeybadger.configure({
apiKey: "your-api-key",
});
// Function to generate a SHA-256 hash in pure JavaScript
async function generateFingerprint(stackFrame) {
const { file, line, method } = stackFrame;
@stympy
stympy / honeybadger.rb
Created January 29, 2025 05:27
Include Heroku dyno name in Insights events
# config/initializers/honeybadger.rb
Honeybadger.configure do |config|
config.before_event do |event|
event[:dyno] = ENV['DYNO'] if ENV['DYNO'].present?
end
end
@stympy
stympy / release.yml
Created January 18, 2025 14:14
Deploying to ECS in multiple regions with GitHub Actions
name: Create Amazon ECS release
on:
workflow_run:
workflows: ["Tests"]
branches: [master]
types: [completed]
concurrency:
group: production
@stympy
stympy / app.tf
Last active January 22, 2025 10:12
Blue/Green deploys to ECS with GitHub Actions
resource "aws_codedeploy_app" "web" {
compute_platform = "ECS"
name = "honeybadger-web-${var.environment}"
}
resource "aws_codedeploy_deployment_group" "web" {
app_name = aws_codedeploy_app.web.name
deployment_config_name = "CodeDeployDefault.ECSAllAtOnce"
deployment_group_name = var.environment
service_role_arn = aws_iam_role.web-deployer.arn
@stympy
stympy / server.cr
Created January 14, 2025 14:32
Reporting events to Honeybadger Insignts from Crystal
require "http/server"
require "honeybadger"
Honeybadger.configure do |config|
config.api_key = "replaceme"
config.environment = "production"
end
server = HTTP::Server.new do |context|
context.response.content_type = "text/plain"
@stympy
stympy / Caddyfile
Last active December 4, 2024 00:41
Serving secure customer domains with Caddy - the tech behind https://www.honeybadger.io/tour/status-pages/
{
# Caddy is running behind an application load balancer hosted at AWS, so this configures Caddy to trust the headers set by it
servers {
trusted_proxies static private_ranges
}
# Avoid DoS attacks by confirming with a backend app that a requested domain should have an on-demand certificate generated
on_demand_tls {
ask http://web.internal:5000/confirm_domain
interval 1m
@stympy
stympy / application_controller.rb
Created November 5, 2024 11:58
Add controller data to process_action.action_controller events sent to Insights
class ApplicationController < ActionController::Base
# ...
private
def append_info_to_payload(payload)
super
payload[:user_id] = current_user&.id
end
end
@stympy
stympy / honeybadger.yml
Created November 5, 2024 11:57
Ignore most Rails instrumentation in Insights
events:
ignore:
- !ruby/regexp '/(send_file|redirect_to|halted_callback|unpermitted_parameters)\.action_controller/'
- !ruby/regexp '/(write_fragment|read_fragment|expire_fragment|exist_fragment\?)\.action_controller/'
- !ruby/regexp '/cache_(read|generate|fetch_hit|write|increment|decrement|delete|cleanup|prune|exist\?)\.active_support/'
- !ruby/regexp '/cache_(read_multi|write_multi|delete_multi\?)\.active_support/'
- !ruby/regexp '/^render_(template|partial|collection)\.action_view/'
- !ruby/regexp '/sql.active_record/'
- !ruby/regexp '/process.action_mailer/'
- !ruby/regexp '/(service_upload|service_download)\.active_storage/'
@stympy
stympy / honeybadger.rb
Created August 28, 2024 20:42
Populate additional info for every event sent to Honeybadger Insights
# config/initializers/honeybadger.rb
Honeybadger.configure do |config|
config.before_event do |event|
if (environment = ENV["HONEYBADGER_ENV"].presence || ENV["RAILS_ENV"].presence)
event[:environment] = environment
end
event[:user] = { name: Current.user.name, email: Current.user.email } if Current.user
end
end