- Python
New Relicとは|できること・料金・NRQLと仕組みを実例で解説
結論
New Relicとは、アプリやサーバーのデータを集めて1か所で見て、問い合わせ(NRQL)と通知ができるSaaSです。読み方は「ニューレリック」です。
この記事でわかること
- エージェントが送る13回の通信の中身(実物)
- NRQLの早見表と40件の実データでの集計
- 料金と無料枠100GBの試算、3製品との違い表
アプリに入れたエージェント(または OpenTelemetry)がデータを New Relic の受け口へ送り、データベース NRDB にためます。画面のグラフもアラートも、NRQL という SQL に似た言葉でそのデータを読んでいます。
flowchart TD
A[アプリ・サーバー] -->|APM・インフラのエージェント| C[New Relic の受け口]
B[OpenTelemetry] -->|OTLP| C
C --> D[(NRDB)]
D -->|NRQL| E[画面・ダッシュボード]
D -->|NRQL| F[アラートが通知]
よく出る言葉を先にまとめます。
| 言葉 | 何か | 例 |
|---|---|---|
| APM | アプリの処理時間・エラー・呼び出しを見る機能 | POST /orders が 90ms、うち DB 30ms |
| エージェント | アプリやホストに入れて、データを送るソフト | Python エージェント 14.0.0 |
| NRDB | New Relic のデータベース | 全部のデータがここに入る |
| NRQL | NRDB に問い合わせる SQL に似た言葉 | SELECT count(*) FROM Transaction |
| イベント | 1件ごとの記録(種類名で区別) | Transaction・Log・Span |
| ライセンスキー | データを送るためのキー | エージェントの設定に書く |
| ユーザーキー | API(NerdGraph)を使うためのキー | NRQL を API で実行する |
| 料金 | 取り込むデータ量(GB)+ユーザー数 | 毎月100GBまで無料 |
| 無料枠 | 100GB/月・フルプラットフォームユーザー1人 | クレジットカード不要 |
確認環境:Ubuntu 24.04.4・Python 3.11.15・New Relic Python エージェント(newrelic)14.0.0・OpenTelemetry Python SDK 1.45.1(opentelemetry-exporter-otlp-proto-http 1.45.1)。エージェントの送り先を、New Relic の受け口(collector)の代わりに自作の HTTPS の擬似サーバーへ向け、届いた通信をすべて記録しました。OpenTelemetry は OTLP/HTTP の擬似の受け口で受け、protobuf を JSON に変換して中身を見ました。NRQL の集計は、エージェントが送った40件の Transaction イベントを SQLite 3.45.1 に入れ、同じ意味の SQL で計算しました。料金の試算は Python で計算しました。New Relic のサービス本体(画面・NRQL の実行・アラート)には接続しておらず、仕様・画面・料金は docs.newrelic.com と newrelic.com の料金ページ(英語版・日本語版)で、他の製品は各公式サイトで確かめました(確認日 2026年10月22日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「New Relicとは|できること・料金・NRQLと仕組みを実例で解説」
New Relicとは(読み方・どこの会社か)
この節では、New Relic が何をするサービスで、どこの会社が出しているかが分かります。
New Relic(ニューレリック)は、アプリ・サーバー・ブラウザ・ログなどのデータ(テレメトリ)を集め、1つの画面で調べたり、異常を通知したりする SaaS です。 公式ドキュメントは、エージェントでサービスからデータを集め、New Relic Database(NRDB)に保存し、NRQL(New Relic query language)という SQL に似た言葉で読む仕組みだと説明しています。
| 項目 | 内容 |
|---|---|
| 読み方 | ニューレリック。表記は New Relic(newrelic はパッケージ名などの表記) |
| 創業 | 2008年、Lew Cirne 氏。社名は創業者の名前のアナグラム |
| 本社 | 米国サンフランシスコ |
| 上場と非公開化 | 2014年12月に NYSE 上場(NEWR)。2023年11月に Francisco Partners と TPG による買収が完了し上場廃止 |
| 日本法人 | New Relic株式会社(2018年8月設立、東京都中央区) |
| 日本のデータ保管先 | JP リージョン(one.jp.newrelic.com)。日本法人経由で申し込む |
監視とオブザーバビリティの違い
New Relic は自社を「オブザーバビリティ(observability、可観測性)」のプラットフォームと呼んでいます。
New Relic では「後から問い合わせる」部分を NRQL が受け持つ。画面のグラフも NRQL で書かれている
New Relicでできること(APM・インフラ・ログ・ブラウザ・合成監視・アラート)
この節では、New Relic の主な機能と、それぞれで何が見られるか、どのイベントにデータが入るかが分かります。
公式ドキュメントの「Introduction to New Relic」に挙がっている機能から、よく使うものをまとめます。New Relic は機能ごとに別料金にはなっておらず、データ量とユーザー数で料金が決まる点が特徴です(料金の節で詳しく見ます)。
| 機能 | 見られるもの | 主なイベント(NRQL の FROM) |
|---|---|---|
| APM | リクエストごとの処理時間・エラー・遅い処理 | Transaction・TransactionError |
| 分散トレーシング | サービスをまたぐ1リクエストの流れ | Span・DistributedTraceSummary |
| インフラ監視 | CPU・メモリ・ディスク・ネットワーク・プロセス | SystemSample・ProcessSample |
| ログ管理 | ログの検索・集計、トレースとのひも付け | Log |
| ブラウザ監視 | 実際の利用者の表示の速さ・JS エラー | PageView・JavaScriptError |
| モバイル監視 | Android・iOS アプリのクラッシュ・通信 | モバイル用のイベント |
| 合成監視(Synthetics) | 外から定期的にサイトや API を試す | SyntheticCheck |
| アラート | 条件を満たしたら Slack などへ通知 | 条件の中身は NRQL |
| ダッシュボード | グラフを並べた画面 | 各グラフが NRQL |
| Errors inbox | エラーをまとめて担当・状態を管理 | TransactionError など |
| サービスレベル | SLI・SLO の設定と達成率 | Transaction などから計算 |
| Kubernetes・サーバーレス | クラスターの状態、AWS Lambda の実行 | AwsLambdaInvocation など |
イベント名は公式のデータ辞書(Data dictionary)にある名前です。
合成監視(Synthetics)の種類
| 種類 | 何をするか |
|---|---|
Ping(SIMPLE) |
HTTP で1回アクセスして、動いているかを見る。JavaScript は動かさない |
Simple browser(BROWSER) |
Chrome などのブラウザでページを開く |
Step monitor(STEP_MONITOR) |
コードを書かずに、クリック・入力などの手順を設定して試す |
Scripted browser(SCRIPT_BROWSER) |
スクリプトでサイトを操作して確かめる |
API test(SCRIPT_API) |
API を呼んで結果を確かめる |
Certificate check(CERT_CHECK) |
証明書の期限が近いと知らせる |
Broken links(BROKEN_LINKS) |
ページ内のリンク切れを調べる |
New Relicを使うと何が変わるか
1全部が同じ DB に入る
APM・インフラ・ログ・ブラウザのデータが NRDB に入り、同じ NRQL で読める。
2機能ごとの契約が要らない
料金はデータ量とユーザー数。APM を足しても「APM の契約」が増えるわけではない。
3OpenTelemetry でも送れる
New Relic のエージェントを使わず、OTLP で直接送る受け口がある。
4無料枠で始められる
毎月100GBまでの取り込みとフルプラットフォームユーザー1人が無料。
New Relicの仕組み(エージェント→NRDB→NRQL)
この節では、データがどの順番で New Relic に届き、どこで読まれるかが分かります。
データの入り口は大きく3つです。
| 入り口 | 何を使うか | 送り先の例 |
|---|---|---|
| New Relic のエージェント | APM エージェント(Python・Java・Node.js・Go・.NET・PHP・Ruby)、インフラエージェント、ブラウザエージェント | collector.newrelic.com など |
| OpenTelemetry | OTel の SDK や Collector から OTLP で送る | otlp.nr-data.net(US) |
| データ取り込み API | Event・Metric・Log・Trace の各 API、各クラウドとの連携 | API ごとの URL |
APM エージェントの場合、アプリの起動からデータを送るまでの流れは次のとおりです(次の節で、この順番を実物で確かめます)。
flowchart TD
S[アプリ起動] --> P[preconnect 送り先を聞く]
P --> C[connect アプリを登録 run_id を受け取る]
C --> H[集めたデータを定期的に送る]
H --> H
H --> X[終了時に残りを送って shutdown]
キーは用途で分かれています。公式ドキュメントの説明です。
| キー | 使う場所 |
|---|---|
| ライセンスキー | ほぼすべてのデータの送信(APM・インフラ・OTLP など) |
| ブラウザキー | ブラウザ監視のデータの送信 |
| モバイルアプリトークン | モバイル監視のデータの送信 |
| ユーザーキー | NerdGraph(GraphQL の API)で問い合わせや設定をする |
Pythonエージェントが送るデータの中身(擬似の受け口で受けた実物)
この節では、APM エージェントが実際に何回、どんな JSON を送っているかが分かります。
Python エージェント(pip install newrelic)を入れ、注文処理の中で DB への書き込みと決済の呼び出しをする小さなプログラムを作りました。決済は例外で失敗させ、カスタムイベントとカスタムメトリクスも記録します。
import logging, time
import newrelic.agent
newrelic.agent.initialize() # 環境変数 NEW_RELIC_* で設定
app = newrelic.agent.register_application(timeout=10.0)
log = logging.getLogger("shop"); logging.basicConfig(level=logging.INFO)
@newrelic.agent.function_trace(name="db.insert_order")
def insert_order():
time.sleep(0.03)
@newrelic.agent.function_trace(name="payment.call")
def call_payment():
time.sleep(0.05)
raise RuntimeError("payment gateway returned 502")
@newrelic.agent.background_task(name="create_order", group="Shop")
def create_order(order_id):
newrelic.agent.add_custom_attribute("order_id", order_id)
insert_order()
try:
call_payment()
except RuntimeError:
newrelic.agent.notice_error()
log.error("payment failed order_id=%s", order_id)
newrelic.agent.record_custom_event("OrderCreated", {"order_id": order_id, "amount": 1200, "status": "payment_failed"})
newrelic.agent.record_custom_metric("Custom/Shop/QueueSize", 42)
create_order(1001)
newrelic.agent.shutdown_agent(timeout=10.0) # 終了時に残りのデータを送る
送り先は、New Relic の受け口の代わりに、届いた HTTPS のリクエストを記録する擬似サーバー(ポート 33843)にしました。エージェントは環境変数で送り先を変えられます。ライセンスキーは40桁の仮の値です。
NEW_RELIC_LICENSE_KEY=0000000000000000000000000000000000000000 \
NEW_RELIC_APP_NAME=shop-api \
NEW_RELIC_HOST=localhost NEW_RELIC_PORT=33843 \
NEW_RELIC_CA_BUNDLE_PATH=./cert.pem \
python app.py
1回の実行で13回の通信が届いた
擬似サーバーに届いたリクエストの一覧です。すべて POST /agent_listener/invoke_raw_method で、何のデータかは URL の method= で区別されていました。
=== POST /agent_listener/invoke_raw_method method=preconnect (2 bytes)
=== POST /agent_listener/invoke_raw_method method=connect (1549 bytes)
=== POST /agent_listener/invoke_raw_method method=agent_settings (9380 bytes)
=== POST /agent_listener/invoke_raw_method method=analytic_event_data (357 bytes)
=== POST /agent_listener/invoke_raw_method method=span_event_data (1605 bytes)
=== POST /agent_listener/invoke_raw_method method=error_event_data (542 bytes)
=== POST /agent_listener/invoke_raw_method method=custom_event_data (169 bytes)
=== POST /agent_listener/invoke_raw_method method=log_event_data (285 bytes)
=== POST /agent_listener/invoke_raw_method method=update_loaded_modules (271 bytes)
=== POST /agent_listener/invoke_raw_method method=error_data (996 bytes)
=== POST /agent_listener/invoke_raw_method method=metric_data (8210 bytes)
=== POST /agent_listener/invoke_raw_method method=get_agent_commands (17 bytes)
=== POST /agent_listener/invoke_raw_method method=shutdown (17 bytes)
ヘッダーと URL の中身です(データを送るリクエストの1つ)。
POST /agent_listener/invoke_raw_method?protocol_version=17&license_key=0000…0000&marshal_format=json&method=span_event_data&run_id=fake-run-0001
user-agent: NewRelic-PythonAgent/14.0.0 (Python 3.11.15 linux)
X-NR-Run-Token: token-123
Content-Type: application/json
Content-Encoding: Identity
run_id と X-NR-Run-Token は、connect の応答でサーバーから受け取った値です(ここでは擬似サーバーが返した仮の値)。どちらもこの後の全部のリクエストに付きました。データは今回の大きさでは圧縮されず、JSON のまま(Content-Encoding: Identity)送られました。
| method | 中身 | NRQL で読むときの名前 |
|---|---|---|
preconnect |
送り先のホストを聞く | ― |
connect |
アプリ名・ホスト名・OS・CPU 数・メモリ・Python の版を送って登録 | ― |
agent_settings |
エージェントの全設定 | ― |
analytic_event_data |
1回の処理(トランザクション)ごとの記録 | Transaction |
span_event_data |
処理の中の1つ1つ(スパン) | Span |
error_event_data・error_data |
エラーの記録と、スタックトレース | TransactionError |
custom_event_data |
record_custom_event で記録したもの |
OrderCreated(自分で付けた名前) |
log_event_data |
Python の logging のログ | Log |
metric_data |
集計済みのメトリクス | Metric(APM の集計値) |
connect(アプリの登録)
connect で送られた JSON の一部です(実行ファイルのパスは省略しました)。
[
{
"host": "vm",
"pid": 14229,
"language": "python",
"app_name": ["shop-api"],
"agent_version": "14.0.0",
"environment": [
["Arch", "x86_64"],
["OS", "Linux"],
["Logical Processors", 2],
["Python Runtime", "3.11.15"],
["Python Implementation", "CPython"]
],
"security_settings": {
"capture_params": null,
"transaction_tracer": {"record_sql": "obfuscated"}
},
"utilization": {
"metadata_version": 6,
"logical_processors": 2,
"total_ram_mib": 8027.5859375,
"hostname": "vm"
},
"high_security": false,
"event_harvest_config": {
"harvest_limits": {
"analytic_event_data": 1200,
"custom_event_data": 3600,
"span_event_data": 2000,
"error_event_data": 100,
"log_event_data": 10000
}
}
}
]
record_sql: "obfuscated" は、SQL の値の部分を伏せて送る設定(既定値)です。harvest_limits は、1回の送信に入れる件数の上限です。
Transaction・Span(APM のデータ)
analytic_event_data に入っていた Transaction イベントです。配列の2つ目が add_custom_attribute で付けた属性です。
[
{
"guid": "01702876dc4c10c7",
"traceId": "01702876dc4c10c797a67c58ac1839a1",
"timestamp": 1792673751240,
"duration": 0.08397769927978516,
"type": "Transaction",
"name": "OtherTransaction/Shop/create_order",
"totalTime": 0.08397769927978516,
"error": true
},
{"order_id": 1001},
{}
]
span_event_data の3件を、guid と parentId でつなぐと次の木になりました。duration は秒です。
Shop/create_order 84.0 ms error.class=builtins:RuntimeError
├─ Function/db.insert_order 30.1 ms
└─ Function/payment.call 50.3 ms error.message=payment gateway returned 502
エラー・カスタムイベント・ログ
エラーは2か所に送られていました。error_event_data(NRQL の TransactionError)と、スタックトレースつきの error_data です。
{
"type": "TransactionError",
"error.class": "builtins:RuntimeError",
"error.message": "payment gateway returned 502",
"transactionName": "OtherTransaction/Shop/create_order",
"spanId": "2526f641ed0f7eba"
}
record_custom_event("OrderCreated", …) は、そのままの名前のイベントになりました。NRQL では FROM OrderCreated で読めます。
[{"type": "OrderCreated", "timestamp": 1792673751324}, {"order_id": 1001, "amount": 1200, "status": "payment_failed"}]
Python の log.error(...) で書いたログは、コードに何も足さなくても log_event_data で送られ、トレースの ID が付いていました。
{
"timestamp": 1792673751321,
"level": "ERROR",
"message": "payment failed order_id=1001",
"attributes": {
"entity.name": "shop-api",
"hostname": "vm",
"span.id": "2526f641ed0f7eba",
"trace.id": "01702876dc4c10c797a67c58ac1839a1"
}
}
ログの trace.id は、Transaction の traceId と同じ値です。New Relic の画面で、トレースから同じ処理のログへ移れるのは、この値でつながっているからです。
metric_data(集計済みのメトリクス)
72個のうち、アプリに関係する行の抜粋です。値の配列は [回数, 合計, 自分だけの時間, 最小, 最大, 二乗和] の形でした。
{"name": "OtherTransaction/Shop/create_order"} [1, 0.0840, 0.0036, 0.0840, 0.0840, 0.0071]
{"name": "Function/db.insert_order"} [1, 0.0301, 0.0301, 0.0301, 0.0301, 0.0009]
{"name": "Function/payment.call"} [1, 0.0503, 0.0503, 0.0503, 0.0503, 0.0025]
{"name": "Errors/all"} [1, 0.0, 0.0, 0.0, 0.0, 0.0]
{"name": "Custom/Shop/QueueSize"} [1, 42, 42, 42, 42, 1764]
{"name": "Memory/Physical"} [1, 37.25, 37.25, 37.25, 37.25, 1387.85]
create_order の「自分だけの時間」0.0036秒は、合計 0.0840秒から、中の2つの処理(0.0301+0.0503)を引いた残りです。
Web アプリでは何が送られるか
WSGI のアプリを newrelic.agent.wsgi_application() で包み、curl で3回アクセスしました。Transaction の名前に URL が入り、HTTP の情報が属性として付きました(1件目)。
{"type": "Transaction", "name": "WebTransaction/Uri/", "duration": 0.000846, "apdexPerfZone": "S",
"request.method": "GET", "request.uri": "/", "request.headers.userAgent": "curl/8.5.0",
"http.statusCode": 200, "response.status": "200"}
同じ形で40回アクセスした結果を、次の NRQL の節で集計に使います。
ひとつ気付いた点があります。例外を起こさずに 500 を返しただけの処理には、error が付きませんでした(4件とも error なし、error_event_data も送られない)。500 の割合を見たいときは、後の節のように http.statusCode で数えます。
OpenTelemetryで送るデータの中身(OTLPの実物)
この節では、New Relic のエージェントを使わずに OpenTelemetry で送るときの設定と、届くデータの形が分かります。
公式ドキュメントの OTLP の受け口は次のとおりです(2026年10月22日時点)。
| リージョン | 送り先 | ポート |
|---|---|---|
| US(既定) | https://otlp.nr-data.net |
443・4317(gRPC)・4318(HTTP) |
| EU | https://otlp.eu01.nr-data.net |
443・4317・4318 |
| JP | https://otlp.jp.nr-data.net |
443・4317・4318 |
| US FedRAMP | https://gov-otlp.nr-data.net |
443・4317・4318 |
ドキュメントが挙げる設定の要点です。
| 項目 | 内容 |
|---|---|
| 認証 | ヘッダー api-key にライセンスキー |
| 形式 | インターネット越しは HTTP/protobuf を推奨 |
| 圧縮 | gzip と zstd。zstd が使えるなら推奨 |
| メトリクスの集計の向き | delta を推奨(UpDownCounter・Gauge は cumulative) |
| 属性の上限 | 値は4,095文字(超えると切り詰め)、キーは255文字、1件の属性は128個 |
| 1回の大きさ | 1MB(10^6 バイト)まで。超えると拒否 |
トレース・メトリクス・ログを1つずつ出す小さなプログラムを書きました。送り先や鍵はコードに書かず、OTEL_* の環境変数で渡します。
import logging, time
from opentelemetry import trace, metrics
from opentelemetry._logs import set_logger_provider
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
res = Resource.create({"service.name": "shop-api", "service.version": "1.4.2", "deployment.environment.name": "dev"})
tp = TracerProvider(resource=res); tp.add_span_processor(BatchSpanProcessor(OTLPSpanExporter())); trace.set_tracer_provider(tp)
mp = MeterProvider(resource=res, metric_readers=[PeriodicExportingMetricReader(OTLPMetricExporter())]); metrics.set_meter_provider(mp)
lp = LoggerProvider(resource=res); lp.add_log_record_processor(BatchLogRecordProcessor(OTLPLogExporter())); set_logger_provider(lp)
logging.getLogger().addHandler(LoggingHandler(logger_provider=lp))
tracer = trace.get_tracer("shop"); meter = metrics.get_meter("shop")
orders = meter.create_counter("shop.orders", unit="{order}", description="注文数")
log = logging.getLogger("shop")
with tracer.start_as_current_span("POST /orders", kind=trace.SpanKind.SERVER) as span:
span.set_attribute("order.id", 1001)
with tracer.start_as_current_span("INSERT orders"):
time.sleep(0.03)
orders.add(1, {"status": "ok"})
log.warning("stock is low order_id=1001")
tp.shutdown(); mp.shutdown(); lp.shutdown()
本番では OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.nr-data.net にします。ここでは擬似の受け口(33845番)に向けました。
OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:33845 \
OTEL_EXPORTER_OTLP_HEADERS="api-key=0000000000000000000000000000000000000000" \
OTEL_EXPORTER_OTLP_COMPRESSION=gzip \
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta \
python otel_app.py
届いたのは3回のリクエストです。
=== POST /v1/traces (363 bytes on wire, 456 bytes protobuf)
=== POST /v1/metrics (351 bytes on wire, 419 bytes protobuf)
=== POST /v1/logs (415 bytes on wire, 486 bytes protobuf)
user-agent: OTel-OTLP-Exporter-Python/1.45.1
content-type: application/x-protobuf
api-key: 0000000000000000000000000000000000000000
Content-Encoding: gzip
/v1/traces の protobuf を JSON にした中身の要点です(ID は16進数にしました。resource の属性は一部を省略)。
{
"resource": {"attributes": {"service.name": "shop-api", "service.version": "1.4.2",
"deployment.environment.name": "dev", "telemetry.sdk.language": "python"}},
"spans": [
{"name": "INSERT orders", "kind": "SPAN_KIND_INTERNAL",
"traceId": "96a02cd6028482404bfaa93dbe160cdb", "spanId": "2d9ec0eabc346fe3", "parentSpanId": "8e790e77cfc924f8"},
{"name": "POST /orders", "kind": "SPAN_KIND_SERVER",
"traceId": "96a02cd6028482404bfaa93dbe160cdb", "spanId": "8e790e77cfc924f8",
"attributes": {"order.id": 1001}}
]
}
メトリクスは "aggregationTemporality": "AGGREGATION_TEMPORALITY_DELTA" で届き、環境変数の delta 指定が効いていました。ログには、同じ処理のスパンの traceId・spanId が入っていました。
| 比べる点 | New Relic のエージェント | OpenTelemetry |
|---|---|---|
| 送り先 | /agent_listener/invoke_raw_method(独自の形式) |
/v1/traces・/v1/metrics・/v1/logs(OTLP) |
| データの形 | JSON(大きいと圧縮) | protobuf(gzip で圧縮) |
| 鍵の渡し方 | URL の license_key |
ヘッダー api-key |
| 計装 | フレームワークを自動で計装 | 計装ライブラリや自動計装を自分で選ぶ |
| ほかの送り先 | New Relic だけ | 設定を変えて他の製品にも送れる |
OpenTelemetry の計装そのものは、関連記事「OpenTelemetry入門|Pythonで始めるトレース・メトリクス実装」で扱っています。
NRQLの書き方(早見表と実データでの計算例)
この節では、NRQL の基本の形と、よく使う関数・句、それが何を計算しているかが分かります。
NRQL は SELECT 関数 FROM イベント名 WHERE 条件 FACET 分け方 SINCE 期間 の形で書きます。 必須は SELECT と FROM だけで、FROM から書き始めてもかまいません(例:FROM Transaction SELECT average(duration))。
句の早見表
| 句 | 意味 | 既定・上限(公式ドキュメント) |
|---|---|---|
SELECT |
返す値や関数 | 必須 |
FROM |
読むイベントの種類(カンマで複数) | 必須 |
WHERE |
行を絞る(=・IN・LIKE・IS NULL など) |
― |
FACET |
値ごとに分ける(SQL の GROUP BY) | 5つの属性まで |
SINCE・UNTIL |
期間の始まりと終わり | SINCE は既定で1時間前、UNTIL は今 |
TIMESERIES |
時間ごとの折れ線にする | 間隔か AUTO・MAX(最大366区間) |
COMPARE WITH |
前の期間と比べる | SINCE か UNTIL が要る |
LIMIT |
返す件数 | FACET は10件、SELECT * は100件、最大5,000 |
WITH TIMEZONE |
時刻の表示のタイムゾーン | 既定は UTC |
関数の早見表
| 関数 | 何を返すか | 例 |
|---|---|---|
count(*) |
件数 | SELECT count(*) FROM Transaction |
average() |
平均 | SELECT average(duration) FROM Transaction |
percentile() |
パーセンタイル(近似値) | SELECT percentile(duration, 95, 99) FROM Transaction |
uniqueCount() |
種類の数(256種までは正確) | SELECT uniqueCount(session) FROM PageView |
percentage() |
条件に合う割合 | SELECT percentage(count(*), WHERE error IS true) FROM Transaction |
apdex() |
Apdex スコア(既定の T は0.4秒) | SELECT apdex(duration, t: 0.5) FROM Transaction |
rate() |
時間あたりの回数 | SELECT rate(count(*), 1 minute) FROM Transaction |
filter() |
1つの集計だけを条件で絞る | SELECT filter(count(*), WHERE http.statusCode >= 500) FROM Transaction |
latest() |
いちばん新しい値 | SELECT latest(cpuPercent) FROM SystemSample FACET hostname |
max()・min()・sum() |
最大・最小・合計 | SELECT max(duration) FROM Transaction |
histogram() |
分布(区間ごとの件数。既定は幅10・40区間) | SELECT histogram(duration) FROM PageView SINCE 1 week ago |
目的別のNRQL(コピーして使える形)
-- アプリごとの平均応答時間と件数(直近1時間)
SELECT average(duration), count(*) FROM Transaction FACET appName
-- 遅い URL の上位10件(直近1日)
SELECT average(duration) FROM Transaction FACET name SINCE 1 day ago LIMIT 10
-- 95・99パーセンタイルを5分ごとの折れ線で、先週と比べる
SELECT percentile(duration, 95, 99) FROM Transaction SINCE 1 day ago COMPARE WITH 1 week ago TIMESERIES 5 minutes
-- 5xx の割合
SELECT percentage(count(*), WHERE http.statusCode >= 500) FROM Transaction SINCE 1 hour ago
-- エラーの種類と件数
SELECT count(*) FROM TransactionError FACET error.class, error.message SINCE 1 day ago
-- ホストごとの CPU 使用率(インフラエージェント)
SELECT average(cpuPercent) FROM SystemSample FACET hostname TIMESERIES
-- ERROR のログを新しい順に
SELECT * FROM Log WHERE level = 'ERROR' SINCE 30 minutes ago LIMIT 100
-- 自分で送ったカスタムイベント
SELECT count(*) FROM OrderCreated FACET status SINCE 1 day ago
-- ブラウザの表示時間を国ごとに
SELECT average(duration) FROM PageView FACET countryCode SINCE 1 week ago
実データで「NRQL が何を計算するか」を確かめる
前の節の Web アプリに40回アクセスし(/ 16回、/items 12回、/search 6回、/checkout 4回、/report 2回)、エージェントが送った Transaction 40件を SQLite に入れて、NRQL と同じ意味の SQL で計算しました。/search は0.6秒、/report は2.1秒かかるようにし、/checkout は 500 を返すようにしています。
| NRQL | 同じ意味の SQL | 40件での結果 |
|---|---|---|
SELECT count(*) FROM Transaction |
SELECT count(*) FROM "Transaction" |
40 |
SELECT average(duration) FROM Transaction |
SELECT avg(duration) … |
0.2159秒 |
… FACET http.statusCode |
… GROUP BY status |
200 が36件、500 が4件 |
SELECT percentage(count(*), WHERE http.statusCode >= 500) … |
SELECT 100.0*sum(status>=500)/count(*) … |
10.0% |
SELECT apdex(duration, t: 0.5) FROM Transaction |
S・T・F の件数から計算 | 0.875 |
FACET name の結果です(平均の遅い順)。
WebTransaction/Uri/report 2件 平均 2100.7 ms
WebTransaction/Uri/search 6件 平均 601.0 ms
WebTransaction/Uri/items 12件 平均 50.8 ms
WebTransaction/Uri/checkout 4件 平均 11.5 ms
WebTransaction/Uri/ 16件 平均 10.9 ms
全体の平均(0.2159秒)は、2件しかない /report に引っ張られて、ほとんどのリクエスト(10〜50ms)より大きな値になっています。平均だけで判断せず、FACET で分けるかパーセンタイルを見る理由がここにあります。
Apdex(利用者の満足度の指標)は、目標時間 T 以内を「満足(S)」、4T 以内を「許容(T)」、それより遅いと「不満(F)」とし、(S の件数+T の件数÷2)÷全件数 で出します。エージェントは各 Transaction に apdexPerfZone を付けて送っていて、Python エージェントの T の既定値は0.5秒でした(ソースの NEW_RELIC_APDEX_T の既定値)。
S(0.5秒以内)32件 / T(2.0秒以内)6件 / F 2件
(32 + 6 ÷ 2) ÷ 40 = 0.875
NRQL の apdex() は、T を省くと0.4秒で計算します。APM の画面の Apdex と NRQL の値を比べるときは、T を同じ値にそろえます。
NRQLをAPIで実行する(NerdGraph)
画面のクエリビルダーのほか、GraphQL の API(NerdGraph)からも NRQL を実行できます。公式ドキュメントの形です。キーはユーザーキーを使います。
curl -X POST https://api.newrelic.com/graphql \
-H 'Content-Type: application/json' \
-H 'API-Key: YOUR_NEW_RELIC_USER_KEY' \
-d '{"query": "{ actor { account(id: YOUR_ACCOUNT_ID) { nrql(query: \"SELECT count(*) FROM Transaction SINCE 1 HOUR AGO\") { results } } } }"}'
送り先は EU が api.eu.newrelic.com、JP が api.jp.newrelic.com です。
New Relicの料金(データ量とユーザー数)
この節では、New Relic の料金がどの単位で決まり、いくらになるかが分かります。
New Relic の料金は「取り込んだデータ量(GB)」と「有料ユーザーの人数」の2つで決まります。 ホスト数や機能ごとの課金ではありません。公式ドキュメントでは、データ量は種類を問わず取り込んだ GB で数え、月の GB は整数に切り上げます。ユーザーは月ごとに数え、その月にいちばん上だった種類で数えます。
英語版の料金ページの価格です(米ドル、1か月あたり。2026年10月22日時点)。
| 項目 | Free | Standard | Pro |
|---|---|---|---|
| データ(Original) | 100GB まで無料 | 100GB 超は 0.40ドル/GB | 100GB 超は 0.40ドル/GB |
| データ(Data Plus) | 100GB まで無料 | 100GB 超は 0.60ドル/GB | 100GB 超は 0.60ドル/GB |
| ベーシックユーザー | 0ドル(人数無制限) | 0ドル | 0ドル |
| コアユーザー | なし | 49ドル/人 | 49ドル/人 |
| フルプラットフォームユーザー | 1人無料 | 1人目10ドル、2人目から99ドル(最大5人) | 年契約349ドル/人、月払い418.80ドル/人 |
Enterprise は営業に問い合わせる形です。EU のデータセンターに保存するときは 0.05ドル/GB が加わり、合成監視は含まれる回数を超えると1回 0.005ドルです。
日本語版の料金ページは、英語版と値が違います(同じく2026年10月22日時点)。日本語版の表にあるのは無料・Pro・Enterprise で、データの単価は Original 0.30ドル/GB、Data Plus 0.50ドル/GB、フルプラットフォームユーザーは Pro が年契約349ドル(月払い418.80ドル)、Enterprise が年契約549ドル(月払い658.80ドル)です。契約するときは、申し込むページと見積もりで単価を確かめます。
ユーザーの種類(ベーシック・コア・フルプラットフォーム)
| 種類 | 使えるもの | 料金 |
|---|---|---|
| ベーシック | データの取り込み設定、NRQL、ダッシュボードの作成、基本的なアラート。APM・ブラウザ・モバイルの専用画面は使えない | 無料 |
| コア | ベーシックに加えて、Errors inbox・ログ管理の画面・CodeStream など開発者向けの機能 | 有料 |
| フルプラットフォーム | APM・インフラ・ブラウザ・モバイル・合成監視の専用画面を含む全部 | 有料 |
公式ドキュメントは、ユーザーの種類は「使える権限の上限」を決めるもので、細かい権限はロールで分けるとしています。
月額の試算
10人のチーム(フルプラットフォーム3人・コア2人・ベーシック5人)が、月に350GB 取り込む場合を、英語版の単価で計算しました。
| プラン | ユーザー | データ(250GB 分) | 合計 |
|---|---|---|---|
| Standard | 208ドル(10+99+99)+コア98ドル | 100ドル | 406ドル |
| Pro(年契約) | 1,047ドル(349×3)+コア98ドル | 100ドル | 1,245ドル |
| Pro(年契約・Data Plus) | 1,047ドル+コア98ドル | 150ドル | 1,295ドル |
| Pro(月払い) | 1,256.40ドル(418.80×3)+コア98ドル | 100ドル | 1,454.40ドル |
日本語版の単価(0.30ドル/GB)で Pro(年契約)を計算すると 1,220ドルでした。この構成では、費用の大部分はユーザー数です。 だれをフルプラットフォームにするかで、料金が大きく変わります。
ほかに、ユーザー数の代わりに処理量(CCU)で払う Core Compute(2026年10月22日時点でパブリックプレビュー)と、AI などの機能のための Advanced Compute という追加の仕組みもあります。
New Relicの無料枠でできること
この節では、無料のまま使える範囲が分かります。
料金ページの無料枠です(2026年10月22日時点)。
保持期間は「少なくとも8日」です。無料枠でも APM・インフラ・ログ・ブラウザなどの機能は使え、フルプラットフォームユーザー1人がすべての画面を見られます。100GB を超えて取り込みたいときや、見る人を増やしたいときは、料金ページの Standard・Pro などのプランを選びます。
前の節の実測では、Python エージェント1回の実行で送られた JSON は合計で約23KB(13回の合計 23,398バイト)でした。実際の量はリクエスト数・ログの量・送る属性で大きく変わります。試すときは、数日分の取り込み量を画面の使用量(Usage)で見て、30日分に直すと月の量を見積もれます。
データの保持期間とリージョン(US・EU・JP)
この節では、データがいつまで残るかと、どこに保存されるかが分かります。
保持期間
公式ドキュメントの既定値です(日数。2026年10月22日時点)。
| データ | Original | Data Plus |
|---|---|---|
| APM | 8 | 98 |
| 分散トレース | 8 | 98 |
| ブラウザ | 8 | 98 |
| インフラのプロセス | 8 | 98 |
| ログ | 30 | 120 |
| カスタムイベント | 30 | 120 |
| インフラの連携(クラウドなど) | 395(13か月) | 485(16か月) |
| 合成監視 | 395 | 395 |
集計済みのメトリクスは13か月残ります。APM のイベントは既定で8日なので、それより前と比べたいときは、ダッシュボードやメトリクスで残す形を考えます。
リージョン
| リージョン | 画面の URL | 申し込み |
|---|---|---|
| US(既定) | one.newrelic.com |
申し込むと US になる |
| EU | one.eu.newrelic.com |
申し込み時に「European Union」を選ぶ |
| JP | one.jp.newrelic.com |
日本法人の申し込みフォームから。日本の営業が設定を手伝う |
公式ドキュメントは、組織とアカウントは1つのリージョンにだけ置かれ、既存のアカウントのデータを別のリージョンへ移すことには対応していないとしています。リージョンは最初に決める必要があります。JP リージョンでは、APM の週次レポート・Log Patterns・Infinite Tracing・Insights Query API・REST API v2 など、一部の機能と API が使えず、代わりの方法(NRQL・NerdGraph など)が案内されています。
New Relicの導入の流れ(アカウント作成→エージェント→アラート)
この節では、アカウントを作ってから通知が届くまでの順番が分かります。
リージョンを決めてアカウントを作る
US・EU は公式サイトから、JP は日本法人のフォームから申し込みます。後から移せないので、データの保管場所の要件を先に確かめます。
ライセンスキーを確かめる
データを送るのはライセンスキー、API で問い合わせるのはユーザーキーです。キーは画面の API キーの一覧で作成・確認します。
インフラエージェントを入れる
画面のガイド付きインストールが出すコマンドをホストで実行します。設定ファイルは /etc/newrelic-infra.yml で、必須の設定は license_key だけです。
APM エージェントを入れる
Python なら pip install newrelic と設定ファイルの作成、起動コマンドの前に newrelic-admin run-program を付けます。OpenTelemetry で送る形も選べます。
ログ・ブラウザを足す
Python エージェントは logging のログを送ります(上の実測)。ブラウザ監視は APM エージェントによる自動の埋め込みか、JavaScript のスニペットを head に貼ります。
ダッシュボードとアラートを作る
NRQL でグラフを作り、利用者に影響が出る条件のアラートと通知先(Slack など)を設定します。
Python エージェントの入れ方
公式ドキュメントの newrelic-admin の使い方に沿って、手元で設定ファイルを作りました(キーは仮の値)。
pip install newrelic
newrelic-admin generate-config 0000000000000000000000000000000000000000 newrelic.ini
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program gunicorn wsgi:application
作られた newrelic.ini は257行で、コメントを除いた最初の部分は次のとおりでした。
[newrelic]
license_key = 0000000000000000000000000000000000000000
app_name = Python Application
monitor_mode = true
log_file = stdout
log_level = info
high_security = false
transaction_tracer.enabled = true
transaction_tracer.transaction_threshold = apdex_f
transaction_tracer.record_sql = obfuscated
error_collector.enabled = true
browser_monitoring.auto_instrument = true
distributed_tracing.enabled = true
[newrelic:development]
monitor_mode = false
app_name は画面に出るアプリの名前なので、最初に書き換えます。[newrelic:development] などの節は環境ごとの上書きで、環境変数 NEW_RELIC_ENVIRONMENT で選びます。Python エージェント 14.0.0 が対応する Python は 3.10〜3.14 です(パッケージの情報と公式ドキュメント。Windows は 3.13 以上)。
newrelic-admin のコマンドの一覧です(14.0.0 で表示)。
Available commands are:
generate-config
license-key
local-config
network-config
record-deploy
run-program
run-python
server-config
validate-config
validate-config は、設定ファイルでテスト用のアプリ「Python Agent Test」を登録してデータを送り、ログを /tmp/python-agent-test.log に書きます。データが画面に出ないときの切り分けに使えます。
インフラエージェントのコマンド
sudo systemctl status newrelic-infra # 動いているか
sudo systemctl restart newrelic-infra # 設定を変えたら再起動
アラートの仕組み(条件・ポリシー・Issue・ワークフロー)
この節では、New Relic のアラートの部品と、通知が届くまでの流れが分かります。
flowchart TD
Q[NRQL で数える] --> C[条件 Condition しきい値]
C -->|しきい値を超えた| E[アラートイベント]
E -->|関連するものをまとめる| I[Issue]
I --> W[ワークフロー]
W --> D[通知先 Slack など]
| 部品 | 公式ドキュメントの説明 |
|---|---|
| 条件(Condition) | シグナルに1つ以上のしきい値を当てる設定。超えるとアラートイベントができる |
| ポリシー(Policy) | 条件をまとめたもの |
| アラートイベント | しきい値を超えたときにできる記録(1つの症状) |
| Issue | 関連するアラートイベントをまとめたもの。通知のきっかけになる |
| ワークフロー | いつ・どこへ Issue を通知するかの設定 |
| 通知先(Destination) | Slack・PagerDuty など通知を受けるサービス |
しきい値は固定の値のほか、普段と違う動きを見つける異常検知(anomaly)や、将来の値を予測する方法も選べます。条件の中身は NRQL なので、前の節の percentage(count(*), WHERE http.statusCode >= 500) をそのまま「5xx が5%を超えたら」の条件にできます。
何をどのしきい値で監視するかは、関連記事「監視設計の項目一覧|死活・リソース・ログ監視のしきい値例とテンプレート」で、SLO とエラーバジェットの考え方は関連記事「SREとは|SLI・SLO・SLAの違いとエラーバジェット計算」で扱っています。
Datadog・Zabbix・Prometheusとの違い
この節では、よく比べられる監視ツールとの違いを、事実で比べられます。
| ツール | 形態 | データの集め方 | 料金の単位(2026年10月22日時点) |
|---|---|---|---|
| New Relic | SaaS | エージェント・OpenTelemetry・API から送る(push) | データ量(100GB/月まで無料)+ユーザー数 |
| Datadog | SaaS | Agent が送る+クラウドは API 連携 | 製品ごと。ホスト数・データ量・件数(Infrastructure Pro は1ホスト15ドル〜) |
| Zabbix | オープンソース(7.0 から AGPLv3) | Zabbix エージェント・SNMP・HTTP など | ソフトは無料。有償サポートあり |
| Prometheus | オープンソース | Prometheus が HTTP で取りに行く(pull) | ソフトは無料。サーバー代と運用 |
| 比べる点 | New Relic | Datadog | Prometheus+Grafana |
|---|---|---|---|
| 問い合わせの言葉 | NRQL(SQL に似た形) | 画面のクエリ・独自の検索構文 | PromQL |
| APM を足したときの料金 | データ量が増える分だけ | APM ホストの料金が加わる | 自分で Tempo などを用意 |
| 日本のデータ保管 | JP リージョン | AP1 サイト | 自分で置く場所を決める |
| OpenTelemetry | OTLP の受け口あり | Agent の OTLP の受け口あり | OTLP の受け口あり(設定で有効にする) |
SaaS(New Relic・Datadog)
保存・画面・通知の基盤を自分で持たない
データ量やユーザー数・ホスト数に応じて費用が増える
データを社外のサービスに送る
自分で運用(Zabbix・Prometheus+Grafana)
ソフトの費用はかからない
サーバー・保存・冗長化・版の更新を自分で受け持つ
データを社内に置ける
Datadog の料金の数え方と Agent の通信の中身は関連記事「Datadogとは|できること・料金・仕組みと他ツールとの違いを実例で解説」で、Zabbix の構成とインストールは関連記事「Zabbixとは|構成・用語・インストールと使い方を実例で解説」で、Prometheus と Grafana で監視を組む手順は関連記事「Prometheus Grafana入門|監視構築とPromQL一覧」で扱っています。
New Relicのよくあるエラーとデータが出ないとき
この節では、データが画面に出ないときの原因と直し方を引けます。エラー文は、この記事で実際に出たもの(Python エージェント 14.0.0)です。
| エラー・症状 | 原因 | 直し方 |
|---|---|---|
Data collector is indicating that an incorrect license key has been supplied by the agent. |
ライセンスキーが違う(受け口が 401 を返した) | 画面でライセンスキーを確かめて貼り直す。ユーザーキーと取り違えていないか |
Retrying registration of the application 'shop-api' with the data collector after a further 15 seconds.(debug ログ) |
受け口につながらない(ネットワーク・プロキシ・ファイアウォール) | 送り先への HTTPS(443)を通す。プロキシは proxy_host・proxy_port で設定 |
record_custom_event has been called but no transaction was running.(debug ログ) |
アプリの登録が終わる前、またはトランザクションの外で呼んだ | register_application(timeout=…) で登録を待つか、application= を渡す |
| 短いスクリプトのデータが届かない | 送る前にプロセスが終わった | 終わりに newrelic.agent.shutdown_agent(timeout=…) を呼ぶ |
| 500 を返しているのにエラー率が0% | 例外が起きていない(上の実測) | notice_error() で記録するか、NRQL で http.statusCode >= 500 を数える |
| EU・JP のアカウントで OTLP のデータが出ない | 送り先のリージョンが違う | OTLP の送り先は自分で指定する。EU は otlp.eu01.nr-data.net、JP は otlp.jp.nr-data.net(Python エージェントはライセンスキーの先頭からリージョンの送り先を選ぶ処理がソースにある) |
| OTLP で一部の属性が切れる・届かない | 値が4,095文字を超えた、1回が1MB を超えた | 長い値を短くする。バッチの大きさを下げる |
| 1週間前の APM のデータが見られない | APM のイベントの保持は既定で8日 | Data Plus にするか、必要な集計をダッシュボードやメトリクスで残す |
| 請求のデータ量が多い | ログ・スパン・属性が多い | 送るログの対象とレベルを絞る。取り込み量の画面で内訳を見る |
- 1キーの種類は合っているか送信はライセンスキー、NerdGraph はユーザーキー
- 2リージョンは合っているかUS・EU・JP で送り先と画面の URL が違う
- 3エージェントのログを見たかlog_level を debug にすると、登録の再試行などが出る
- 4アプリ名は思っている名前かapp_name を書き換えないと「Python Application」で届く
- 5期間の指定は合っているかNRQL の SINCE は既定で1時間前から
New Relicが合う・合わないの判断表
この節では、状況ごとに New Relic を選ぶかどうかの目安が分かります。
| 状況 | 選ぶものの目安 |
|---|---|
| ホストやコンテナが多く、見る人は少ない | データ量とユーザー数で決まる New Relic は試算しやすい |
| 見る人が多く、全員に APM の画面が要る | フルプラットフォームの人数で費用が増える。ベーシック・コアで足りる人を分けて試算 |
| データを SQL に似た言葉で自由に集計したい | NRQL(New Relic) |
| 監視データを社外に出せない | Zabbix・Prometheus+Grafana など、社内で動かせるもの |
| データを日本に置く必要がある | New Relic の JP リージョン、Datadog の AP1 など |
| 計装を特定の製品に縛りたくない | OpenTelemetry で計装し、受け口を選ぶ |
| まず小さく試したい | 無料枠(100GB・フルプラットフォーム1人)で、1日の取り込み量を測る |
よくある質問
Q. New Relicの読み方は? A. 「ニューレリック」です。社名は創業者 Lew Cirne 氏の名前のアナグラムです。
Q. New Relic(newrelic)とは何ですか? A. アプリ・サーバー・ブラウザ・ログなどのデータを集めて NRDB に保存し、NRQL で調べたり、アラートで通知したりする SaaS です。機能の一覧は「New Relicでできること」の節にあります。
Q. New Relicはどこの国の会社ですか? A. 米国サンフランシスコに本社がある New Relic, Inc. です。2023年11月から Francisco Partners と TPG の傘下で、非上場です。日本には New Relic株式会社(2018年8月設立)があります。
Q. New Relicは無料で使えますか? A. 使えます。毎月100GB までの取り込み、フルプラットフォームユーザー1人、ベーシックユーザーは人数無制限で無料です。クレジットカードは不要です(2026年10月22日時点)。
Q. New Relicの料金はいくらですか? A. データ量とユーザー数で決まります。英語版の料金ページでは、100GB を超えた分が 0.40ドル/GB、フルプラットフォームユーザーは Pro の年契約で1人349ドル/月です。日本語版のページはデータの単価が 0.30ドル/GB と違うので、申し込むページで確かめます(2026年10月22日時点)。試算は「月額の試算」にあります。
Q. NRQLとは何ですか?
A. New Relic のデータに問い合わせる SQL に似た言葉です。SELECT average(duration) FROM Transaction FACET name SINCE 1 day ago のように書きます。早見表は「NRQLの書き方」の節にあります。
Q. New RelicとDatadogの違いは? A. どちらも SaaS ですが、料金の数え方が違います。New Relic はデータ量とユーザー数、Datadog は製品ごとにホスト数やデータ量で数えます。New Relic はデータを NRQL で横断して集計できます。表は「Datadog・Zabbix・Prometheusとの違い」にあります。
Q. New RelicはOpenTelemetryで使えますか?
A. 使えます。OTLP の受け口(US は otlp.nr-data.net、ポート 4317・4318・443)に、ヘッダー api-key でライセンスキーを付けて送ります。届くデータの実物は「OpenTelemetryで送るデータの中身」の節にあります。
Q. New Relicに日本リージョンはありますか?
A. あります。JP リージョンの画面は one.jp.newrelic.com で、日本法人の申し込みフォームから作ります。一部の機能・API は JP では使えず、代わりの方法が案内されています。
Q. ベーシックユーザーとフルプラットフォームユーザーの違いは? A. ベーシックは無料で、NRQL・ダッシュボード・基本的なアラートが使えます。APM・インフラ・ブラウザ・モバイル・合成監視の専用画面を使うにはフルプラットフォームユーザー(有料)が要ります。
Q. New RelicのPythonエージェントはどのバージョンに対応していますか? A. 2026年10月22日時点の 14.0.0 は Python 3.10〜3.14 に対応しています。Windows では Python 3.13 以上が要ります。
Q. データはどれくらいの期間残りますか? A. 既定で APM・分散トレース・ブラウザは8日、ログとカスタムイベントは30日、インフラの連携と合成監視は395日です。Data Plus にすると APM は98日、ログは120日に延びます。
まとめ
- New Relic(ニューレリック)は、APM・インフラ・ログ・ブラウザ・合成監視のデータを NRDB に集め、NRQL で読み、アラートで通知する SaaS。
- Python エージェントは
preconnect→connectで登録し、Transaction・Span・TransactionError・Log・メトリクスを JSON で送る(1回の実行で13回の通信を確認)。ログにはtrace.idが付き、トレースとつながる。 - OpenTelemetry なら
otlp.nr-data.netにヘッダーapi-keyで送る。protobuf・gzip・delta が推奨の形。 - NRQL は
SELECT … FROM … WHERE … FACET … SINCE …。平均は少数の遅い処理に引っ張られるので、FACET やパーセンタイルで分けて見る。 - 料金はデータ量とユーザー数。無料枠は100GB/月とフルプラットフォーム1人。英語版と日本語版の料金ページで単価が違う(2026年10月22日時点)。
- リージョン(US・EU・JP)は後から移せないので最初に決める。APM のデータの保持は既定で8日。
参考・出典
確認日はいずれも 2026年10月22日です。
- New Relic「Pricing」(英語版):https://newrelic.com/pricing
- New Relic「料金」(日本語版):https://newrelic.com/jp/pricing
- New Relic「会社概要」(日本語版):https://newrelic.com/jp/about
- New Relic Docs「Introduction to New Relic」:https://docs.newrelic.com/docs/new-relic-solutions/get-started/intro-new-relic/
- New Relic Docs「Pricing and billing」:https://docs.newrelic.com/docs/accounts/accounts-billing/new-relic-one-pricing-billing/new-relic-one-pricing-billing/
- New Relic Docs「User type」:https://docs.newrelic.com/docs/accounts/accounts-billing/new-relic-one-user-management/user-type/
- New Relic Docs「Manage data retention」:https://docs.newrelic.com/docs/data-apis/manage-data/manage-data-retention/
- New Relic Docs「Choose your data center」:https://docs.newrelic.com/docs/accounts/accounts-billing/account-setup/choose-your-data-center/
- New Relic Docs「New Relic API keys」:https://docs.newrelic.com/docs/apis/intro-apis/new-relic-api-keys/
- New Relic Docs「NRQL syntax, clauses, and functions」:https://docs.newrelic.com/docs/nrql/nrql-syntax-clauses-functions/
- New Relic Docs「Introduction to NerdGraph」:https://docs.newrelic.com/docs/apis/nerdgraph/get-started/introduction-new-relic-nerdgraph/
- New Relic Docs「NerdGraph tutorial: NRQL」:https://docs.newrelic.com/docs/apis/nerdgraph/examples/nerdgraph-nrql-tutorial/
- New Relic Docs「New Relic OTLP endpoint」:https://docs.newrelic.com/docs/opentelemetry/best-practices/opentelemetry-otlp/
- New Relic Docs「Compatibility and requirements for the Python agent」:https://docs.newrelic.com/docs/apm/agents/python-agent/getting-started/compatibility-requirements-python-agent/
- New Relic Docs「Python agent admin script」:https://docs.newrelic.com/docs/apm/agents/python-agent/installation/python-agent-admin-script-advanced-usage/
- New Relic Docs「Install the infrastructure agent for Linux」:https://docs.newrelic.com/docs/infrastructure/install-infrastructure-agent/linux-installation/install-infrastructure-monitoring-agent-linux/
- New Relic Docs「Start, stop, restart, or check infrastructure agent status」:https://docs.newrelic.com/docs/infrastructure/install-infrastructure-agent/manage-your-agent/start-stop-restart-infrastructure-agent/
- New Relic Docs「Install the browser agent」:https://docs.newrelic.com/docs/browser/browser-monitoring/installation/install-browser-monitoring-agent/
- New Relic Docs「Synthetic monitor types」:https://docs.newrelic.com/docs/synthetics/synthetic-monitoring/getting-started/types-synthetic-monitors/
- New Relic Docs「Alerts overview」:https://docs.newrelic.com/docs/alerts/overview/
- New Relic Docs「Data dictionary」:https://docs.newrelic.com/attribute-dictionary/
- New Relic Python エージェント(PyPI):https://pypi.org/project/newrelic/
- OpenTelemetry Python(PyPI):https://pypi.org/project/opentelemetry-sdk/
- Wikipedia「New Relic」(英語版。創業・上場・買収):https://en.wikipedia.org/wiki/New_Relic
- Datadog「Pricing」:https://www.datadoghq.com/pricing/
- Zabbix「License」:https://www.zabbix.com/license
- Prometheus「Overview」:https://prometheus.io/docs/introduction/overview/
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「New Relicとは|できること・料金・NRQLと仕組みを実例で解説」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。