jeremylongshore/claude-code-plugins-plus-skills
clerk-pack
plugins/saas-packs/clerk-pack/skills/clerk-observability/SKILL.md
January 22, 2026
Select agents to install to:
npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/blob/main/plugins/saas-packs/clerk-pack/skills/clerk-observability/SKILL.md -a claude-code --skill clerk-observabilityInstallation paths:
.claude/skills/clerk-observability/# Clerk Observability
## Overview
Implement comprehensive monitoring, logging, and observability for Clerk authentication.
## Prerequisites
- Clerk integration working
- Monitoring platform (DataDog, New Relic, Sentry, etc.)
- Logging infrastructure
## Instructions
### Step 1: Authentication Event Logging
```typescript
// lib/auth-logger.ts
import { auth, currentUser } from '@clerk/nextjs/server'
interface AuthEvent {
type: string
userId: string | null
timestamp: string
metadata: Record<string, any>
}
class AuthLogger {
private events: AuthEvent[] = []
log(type: string, metadata: Record<string, any> = {}) {
const event: AuthEvent = {
type,
userId: null, // Set after auth
timestamp: new Date().toISOString(),
metadata
}
this.events.push(event)
console.log('[Auth Event]', JSON.stringify(event))
// Send to monitoring service
this.sendToMonitoring(event)
}
async logWithAuth(type: string, metadata: Record<string, any> = {}) {
const { userId, sessionId } = await auth()
const event: AuthEvent = {
type,
userId,
timestamp: new Date().toISOString(),
metadata: {
...metadata,
sessionId,
hasUser: !!userId
}
}
this.events.push(event)
console.log('[Auth Event]', JSON.stringify(event))
this.sendToMonitoring(event)
}
private sendToMonitoring(event: AuthEvent) {
// DataDog example
if (process.env.DD_API_KEY) {
fetch('https://http-intake.logs.datadoghq.com/v1/input', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'DD-API-KEY': process.env.DD_API_KEY
},
body: JSON.stringify({
ddsource: 'clerk',
ddtags: 'env:production',
message: event
})
}).catch(console.error)
}
}
}
export const authLogger = new AuthLogger()
```
### Step 2: Middleware Monitoring
```typescript
// middleware.ts
import { clerkMiddle