Настройка мониторинга серверов через New Relic
New Relic — платформа наблюдаемости с бесплатным тарифом до 100 GB данных в месяц. Включает APM, Infrastructure мониторинг, Browser мониторинг, Alerts в одном аккаунте.
Установка Infrastructure агента
# Автоматическая установка (рекомендуется)
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | \
bash && sudo NEW_RELIC_API_KEY="NRAK-..." \
NEW_RELIC_ACCOUNT_ID="1234567" \
/usr/local/bin/newrelic install
# Ручная установка (Ubuntu)
echo "deb http://apt.newrelic.com/debian/ newrelic non-free" | \
sudo tee /etc/apt/sources.list.d/newrelic.list
wget -q https://download.newrelic.com/548C16BF.gpg | sudo apt-key add -
sudo apt-get update && sudo apt-get install newrelic-infra
# /etc/newrelic-infra.yml
license_key: your-license-key
display_name: web01.example.com
custom_attributes:
environment: production
app: myapp
region: eu-west-1
PHP APM агент
# Установка PHP агента
wget https://download.newrelic.com/php_agent/archive/10.x.x/newrelic-php5-10.x.x-linux.tar.gz
tar -xzf newrelic-php5-*.tar.gz
cd newrelic-php5-*/
sudo ./newrelic-install install
# php.ini (добавляется автоматически)
extension = newrelic.so
newrelic.license = "your-license-key"
newrelic.appname = "MyApp (Production)"
newrelic.distributed_tracing_enabled = true
newrelic.transaction_tracer.enabled = true
newrelic.transaction_tracer.threshold = 500 # ms
Кастомные метрики и события
// Кастомная метрика
newrelic_custom_metric('Custom/OrderProcessing/Duration', $durationMs);
newrelic_custom_metric('Custom/Orders/Total', $order->total);
// Кастомное событие
newrelic_record_custom_event('OrderPlaced', [
'orderId' => $order->id,
'userId' => $user->id,
'total' => $order->total,
'items' => $order->items->count(),
]);
// Добавить атрибуты к текущей транзакции
newrelic_add_custom_parameter('userId', auth()->id());
newrelic_add_custom_parameter('planType', auth()->user()->plan);
// Именовать транзакцию
newrelic_name_transaction('/orders/checkout');
Node.js APM
// Первой строкой в точке входа!
require('newrelic');
// newrelic.js
exports.config = {
app_name: ['MyApp (Production)'],
license_key: process.env.NEW_RELIC_LICENSE_KEY,
logging: { level: 'info' },
allow_all_headers: true,
distributed_tracing: { enabled: true },
transaction_tracer: {
enabled: true,
transaction_threshold: 500,
},
};
NRQL алерты (New Relic Query Language)
-- Алерт: высокий error rate
SELECT percentage(count(*), WHERE error IS true)
FROM Transaction
WHERE appName = 'MyApp (Production)'
SINCE 5 minutes ago
-- Алерт: медленные транзакции p95
SELECT percentile(duration, 95)
FROM Transaction
WHERE appName = 'MyApp (Production)'
SINCE 5 minutes ago
-- Dashboard: топ медленных запросов к БД
SELECT average(duration), count(*)
FROM DatabaseQuery
FACET query
WHERE appName = 'MyApp (Production)'
SINCE 1 hour ago
LIMIT 20
Интеграция с PostgreSQL
# /etc/newrelic-infra/integrations.d/postgresql-config.yml
integrations:
- name: nri-postgresql
env:
USERNAME: newrelic
PASSWORD: secure-password
HOSTNAME: localhost
PORT: 5432
DATABASE: myapp
COLLECT_DB_LOCK_METRICS: true
ENABLE_SSL: false
interval: 30s
Срок реализации
New Relic Infrastructure + PHP APM агент: 1 день. С кастомными метриками, NRQL алертами и Browser мониторингом: 2–3 дня.







