monitoring-expert

// Using Pino (fast) import pino from 'pino';

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "monitoring-expert" with this command: npx skills add duck4nh/antigravity-kit/duck4nh-antigravity-kit-monitoring-expert

Monitoring Expert

Logging (Node.js)

// Using Pino (fast) import pino from 'pino';

const logger = pino({ level: process.env.LOG_LEVEL || 'info', transport: process.env.NODE_ENV !== 'production' ? { target: 'pino-pretty' } : undefined });

// Usage logger.info({ userId: 123 }, 'User logged in'); logger.error({ err, requestId }, 'Failed to process');

// Express middleware import pinoHttp from 'pino-http'; app.use(pinoHttp({ logger }));

Error Tracking (Sentry)

import * as Sentry from '@sentry/node';

Sentry.init({ dsn: process.env.SENTRY_DSN, environment: process.env.NODE_ENV, tracesSampleRate: 0.1, });

// Capture errors try { riskyOperation(); } catch (error) { Sentry.captureException(error); throw error; }

// Express error handler app.use(Sentry.Handlers.errorHandler());

Health Checks

// /health endpoint app.get('/health', async (req, res) => { const health = { status: 'ok', timestamp: new Date().toISOString(), uptime: process.uptime(), checks: { database: await checkDatabase(), redis: await checkRedis(), } };

const isHealthy = Object.values(health.checks).every(v => v === 'ok'); res.status(isHealthy ? 200 : 503).json(health); });

async function checkDatabase() { try { await prisma.$queryRawSELECT 1; return 'ok'; } catch { return 'error'; } }

Metrics (Prometheus)

import promClient from 'prom-client';

// Default metrics promClient.collectDefaultMetrics();

// Custom metrics const httpRequestDuration = new promClient.Histogram({ name: 'http_request_duration_seconds', help: 'HTTP request duration', labelNames: ['method', 'route', 'status'], });

// Middleware app.use((req, res, next) => { const end = httpRequestDuration.startTimer(); res.on('finish', () => { end({ method: req.method, route: req.path, status: res.statusCode }); }); next(); });

// Endpoint app.get('/metrics', async (req, res) => { res.set('Content-Type', promClient.register.contentType); res.end(await promClient.register.metrics()); });

Quick Debug Commands

Check logs

journalctl -u myapp -f --since "1 hour ago" docker logs -f --tail 100 container_name

Check resources

htop df -h free -m

Network

netstat -tlnp ss -tlnp curl -I http://localhost:3000/health

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

linux-server-expert

No summary provided by upstream source.

Repository SourceNeeds Review
General

pentest-expert

No summary provided by upstream source.

Repository SourceNeeds Review
General

webpack-expert

No summary provided by upstream source.

Repository SourceNeeds Review
General

mode-exploit

No summary provided by upstream source.

Repository SourceNeeds Review