• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページ を参照してください。

問題を作成する

Magento ビジネス インサイト

当社の Magento ビジネス インサイト ダッシュボードは、Magento e コマース アプリケーションのパフォーマンスの包括的なビューを提供します。ダッシュボードを使用すると、収益のリスク、ダウンタイムによる注文のリスク、システム パフォーマンスの低下など、主要なビジネス指標を簡単に追跡できます。ダッシュボードを使用して、アプリのパフォーマンスの問題を診断し、コードを最適化することもできます。

当社の Magento ビジネス インサイト ダッシュボードでは、Magento アプリのデータを一元的に表示できます。

New Relic で Magento アプリの監視を開始するには、次の手順に従ってアプリ データを New Relic に送信し、Magento ビジネス インサイト ダッシュボードで表示します。

インフラストラクチャエージェントをインストールします

当社のインフラストラクチャ エージェントはホストを監視し、CPU 使用率、メモリ使用率、ストレージ使用率、ディスク使用率、ネットワーク トラフィックなどの指標を報告します。

エージェントをインストールするには、次のいずれかのインストール方法を選択します。

PHPエージェントのインストール

当社の PHP エージェントは、AJAX パフォーマンス、エラー率、期間、コア Web バイタル、スループットなどのアプリケーションおよびブラウザー関連の指標をレポートします。

エージェントをインストールするには、次のいずれかのインストール方法を選択します。

MySQL 統合をインストールする

当社の MySQL 統合は、データベースを監視し、ノードごとの最も遅いクエリやアクティブな接続など、データベースの使用状況と接続に関する指標を収集します。

統合をインストールするには:

  1. one.newrelic.com > Add dataに移動します。

  2. MySQLを検索してクリックします。

  3. アカウントを選択し、ガイド付きのインストール手順に従います。

    別の方法でエージェントをインストールする必要がある場合は、 MySQL 監視統合 を参照してください。

Apache 統合をインストールする

当社の Apache 統合は、TCP 接続、DNS ルックアップ、HTTPS、SSL、およびサーバーとワーカーのステータスなどのネットワーク メトリックを収集します。

統合をインストールするには、 ガイド付きインストールの手順に従います。

別の方法で統合をインストールする必要がある場合は、 Apache 監視統合 を参照してください。

Elasticsearch 統合をインストールする

Elasticsearch の統合により、クラスターのステータスや現在のシャードなどのメトリックが収集されます。 Magento バージョン 2.4 以降を使用している場合は、Elasticsearch 統合をインストールする必要があります。

統合をインストールするには:

  1. one.newrelic.com > Add dataに移動します。

  2. Elasticsearchを検索してクリックします。

  3. アカウントを選択し、ガイド付きのインストール手順に従います。

    別の方法で統合をインストールする必要がある場合は、 「 Elasticsearch モニタリング統合 」を参照してください。

シンセティック モニタリングのセットアップ

当社の合成モニターは、さまざまな場所でアプリをテストし、サーバーのダウンタイムをキャプチャします。このデータは、Magento ビジネス インサイト ダッシュボードで表示できます。

合成モニターをセットアップするには、 ガイド付きインストールの手順に従います。

Flex 統合を作成する

当社のカスタム Flex 統合により、アプリ データベースのクエリを通じてビジネス メトリックを取得できます。

Flex 統合を作成するには:

  1. nri-flex 構成ファイルを作成します。

    • 構成ファイルへのパス: /etc/newrelic-infra/integrations.d/
    • 構成ファイル名: mysql-database-config.yml
  2. 次のコード スニペットを構成ファイルに追加します。USERNAMEPASSWORD 、およびDATABASE_NAMEを必ず変更してください。

    # NOTE: 'database' is an experimental API at this time
    # ref: https://github.com/newrelic/nri-flex/blob/master/docs/experimental/db.md
    ---
    integrations:
    - name: nri-flex
    # interval: 30s
    config:
    name: MySQLDbFlex
    apis:
    - database: mysql
    # connection string for an rds mysql instance. Be sure to use the writer endpoint here. /sys is the default database. newrelic:Password is the user:pass.
    db_conn:<USERNAME>:<PASSWORD>@tcp(localhost:3306)/<DATABASE_NAME>
    logging:
    open: true
    # custom_attributes: # applies to all queries
    # host: CustomMagentoMySQL # custom host name atribute
    db_async: true
    db_queries:
    - name: MYSQLSalesOrderDetails
    run: SELECT status AS 'status', entity_id AS 'order_id' FROM sales_order;
    - name: MySQLSalesOrderCumulative
    run: SELECT AVG(grand_total) AS 'average_grand_total', SUM(grand_total) AS 'grand_total_sum', SUM(total_item_count) AS 'total_order_item_count' FROM sales_order;
    - name: MySQLSalesOrderByStatus
    run: SELECT status AS 'order_status', COUNT(increment_id) AS 'total_orders', (SUM(grand_total)) AS 'total_billed_amount_by_status' FROM sales_order GROUP BY status;
    - name: MYSQLSalesOrderByCustomerGroup
    run: SELECT AVG(salesOrder.grand_total) AS 'grand_total_average_of_all_orders', customerGroup.customer_group_code AS 'customer_group_code' FROM `sales_order` salesOrder JOIN `customer_group` customerGroup ON salesOrder.customer_group_id = customerGroup.customer_group_id GROUP BY salesOrder.customer_group_id;
    - name: MYSQLSalesOrderByProduct
    run: SELECT items.order_id AS 'Order ID', items.created_at AS 'Order Created Date', orders.status AS 'Order Status', items.name AS 'productName', items.sku AS ProductSearchcode, orders.total_item_count AS 'Order Quantity', orders.grand_total AS 'Grand Total' FROM sales_order AS orders JOIN sales_order_item AS items ON items.order_id = orders.entity_id;
    - name: MYSQLSalesOrderByCategory
    run: SELECT items.name AS 'Category', AVG(orders.grand_total) AS 'average_order_total' FROM sales_order AS orders JOIN sales_order_item AS items ON items.order_id = orders.entity_id GROUP BY items.name;
    - name: MYSQLSalesOrderByRegion
    run: SELECT soa.country_id, soa.region_id, dcrn.name 'Region Name', so.entity_id AS 'Order ID', so.grand_total FROM sales_order_address soa JOIN directory_country_region_name dcrn JOIN sales_order so WHERE soa.region_id = dcrn.region_id AND so.entity_id = soa.parent_id;
    - name: MySQLSalesOrderPaymentCount
    run: SELECT count(*) as CountOfOrderByMethod, method as PaymentMethodType FROM `sales_order_payment` group by method;
    - name: MYSQLAbandonedCarts
    run: SELECT customer_email, items_count AS 'Products', items_qty AS 'Quantity', subtotal FROM `quote` WHERE customer_email IS NOT NULL AND reserved_order_id IS NULL AND subtotal != 0.0000;
    - name: MYSQLCustomerEntityRegisteredUsers
    run: SELECT count(*) AS 'Registered Accounts' FROM `customer_entity`;
    - name: MYSQLUnregisteredCustomers
    run: SELECT customer_email FROM sales_order WHERE customer_is_guest = 1 GROUP BY customer_email;
    - name: MYSQLSalesOrderByUnregisteredCustomersSummary
    run: SELECT COUNT(entity_id) AS 'Total Order Ids', SUM(grand_total) AS 'Grand Total Sum' FROM sales_order WHERE customer_is_guest = 1;
    - name: MYSQLCustomerEntityActiveUsers
    run: SELECT count(is_active) AS 'Active Users' FROM `customer_entity` WHERE is_active = 1;
    - name: MYSQLReturningCustomers
    run: WITH ctel1 AS (SELECT COUNT(entity_id) AS 'numberOfOrders', customer_email AS 'customerEmail' FROM sales_order GROUP BY customer_email) SELECT count(*) AS 'returningCustomers' FROM ctel1 WHERE numberOfOrders > 1;
    - name: MYSQLNewCustomers
    run: SELECT COUNT(DISTINCT email) AS 'newCustomers' FROM customer_entity WHERE MONTH(created_at) >= MONTH(CURRENT_DATE() - INTERVAL 1 MONTH);
    - name: MYSQLBestSellersDaily
    run: SELECT SUM(qty_ordered) as 'QuantityOrdered', product_name FROM sales_bestsellers_aggregated_daily GROUP BY product_id, product_name ORDER BY QuantityOrdered DESC;
    - name: MYSQLRevenuePerMonthAndYear
    run: SELECT SUM(grand_total) AS 'Total Revenue', AVG(grand_total) AS 'Average Revenue', YEAR(created_at) AS 'Year', MONTH(created_at) AS 'Month' FROM sales_order WHERE status = 'complete' GROUP BY YEAR(created_at), MONTH(created_at);
    - name: MYSQLMostViewedProductsDaily
    run: SELECT SUM(views_num) as 'View Count', product_name, product_id FROM report_viewed_product_aggregated_daily GROUP BY product_name, product_id ORDER BY View Count DESC;
    - name: MYSQLConversionRate
    run: WITH cte1 AS (SELECT soi.product_id AS 'SalesProductId', soi.name AS 'ProductName', COUNT(soi.order_id) AS 'Total Orders' FROM `sales_order_item` soi group by soi.product_id, soi.name), cte2 AS (SELECT viewed.product_id AS 'ProductID', COUNT(viewed.product_id) AS 'Total Views' FROM `report_viewed_product_index` viewed group by viewed.product_id) SELECT SalesProductId as 'ProductID', ProductName, Total Views, Total Orders, Total Orders / Total Views * 100 as 'Conversion Rate In Percent' FROM cte1 JOIN cte2 WHERE cte1.SalesProductId = cte2.ProductID;
    - name: MYSQLTopTenSalesOrdersByValue
    run: SELECT entity_id AS 'Order ID', total_item_count AS 'Order Quantity', created_at AS 'Created Date', grand_total AS 'Grand Total' FROM sales_order ORDER BY grand_total DESC LIMIT 10;
    - name: MYSQLOrdersAverage
    run: SELECT AVG(order_count) AS 'Average Number Of Orders', Year AS 'Year' FROM (SELECT YEAR(created_at) AS 'Year', COUNT(DISTINCT order_id) AS order_count FROM sales_order_item GROUP BY MONTH(created_at), YEAR(created_at)) subquery GROUP BY Year;
    - name: MYSQLWishlistProducts
    run: SELECT w.product_id, p.value AS 'Product Name', SUM(w.qty) AS 'Wishlist Count' FROM wishlist_item as w LEFT JOIN catalog_product_entity_varchar as p ON p.entity_id = w.product_id WHERE attribute_id = 73 GROUP BY w.product_id, p.value ORDER BY 'Wishlist Count' DESC;
    - name: MYSQLProductPageViewWithNoInventory
    run: SELECT v.product_id, v.product_name, v.views_num AS 'Page Views', i.qty AS 'Inventory Quantity' FROM report_viewed_product_aggregated_daily AS v LEFT JOIN cataloginventory_stock_item i ON i.product_id = v.product_id WHERE i.qty = 0 ORDER BY v.views_num DESC;
    - name: MYSQLHighestRestockAlerts
    run: SELECT p.value as Product Name, p.entity_id as Product ID, count(a.alert_stock_id) as Restock Alert Count FROM `product_alert_stock` AS a, `catalog_product_entity_varchar` as p where a.product_id = p.value_id GROUP BY p.value, product_id order by 2 desc;
    - name: MYSQLSlowMovingProducts
    run: SELECT cpev.entity_id as Product ID, cpev.value as Product Name, sum(isi.quantity) as Quantity from inventory_source_item as isi join catalog_product_entity as cpe on isi.sku = cpe.sku join catalog_product_entity_varchar as cpev on cpe.entity_id = cpev.entity_id where cpev.attribute_id = 73 group by Product ID, Product Name order by Quantity desc;
    - name: MYSQLAccountWithSmallTransaction
    run: SELECT sum(grand_total) as Grand Total, customer_email FROM sales_order group by customer_email order by Grand Total ASC LIMIT 10;
    - name: MYSQLProfitableCustomers
    run: select sum(grand_total) as Grand Total, customer_email from sales_order group by customer_email order by Grand Total desc LIMIT 10;
    - name: MYSQLRevenueLostDueToDiscounts
    run: SELECT SUM(base_discount_amount) as 'Due to Discounts Revenue Loss' FROM `sales_order` WHERE `status` = 'complete';
    - name: MYSQLTotalSalesCountDueToDiscounts
    run: SELECT count(base_discount_amount) as 'Due to Discounts Total Sales Count' FROM `sales_order` WHERE `status` = 'complete';
    - name: MYSQLProdCartAbandonment
    run: Select c.value as Product Name, sum(q.items_count) as Abandoned Products Count from quote as q join catalog_product_entity_varchar as c on q.entity_id = c.entity_id WHERE customer_email IS NOT NULL AND reserved_order_id IS NULL AND subtotal != 0.0000 AND attribute_id = 73 group by Product Name order by Abandoned Products Count;
    - name: MYSQLPaymentMethodChangedFrequently
    run: SELECT o.customer_id, o.customer_email, o.customer_is_guest, COUNT(DISTINCT p.method) AS transaction_count FROM sales_order AS o JOIN sales_order_payment AS p ON o.entity_id = p.parent_id GROUP BY o.customer_id, o.customer_email, o.customer_is_guest HAVING COUNT(DISTINCT p.method) > 1 ORDER BY transaction_count DESC LIMIT 10;
    - name: MYSQLCustomerAddressChanging
    run: SELECT c.entity_id AS customer_id, c.email, COUNT(DISTINCT a.entity_id) AS address_count FROM customer_address_entity AS a JOIN customer_entity AS c ON a.parent_id = c.entity_id GROUP BY c.entity_id, c.email HAVING COUNT(DISTINCT a.entity_id) > 1 ORDER BY address_count DESC;
    - name: MYSQLCustomerPurchaseSameProd
    run: select COUNT(soi.product_id) AS purchase_count, soi.product_id, soi.name as 'Product Name', so.customer_email from sales_order_item as soi join sales_order as so on soi.order_id = so.entity_id group by so.customer_email, soi.product_id, soi.name HAVING COUNT(soi.product_id) > 1 ORDER BY purchase_count DESC;
    - name: MYSQLProductReturned
    run: SELECT soi.product_id, count(soi.product_id) as 'Returned Product Count' FROM `sales_order` as o join `sales_order_item` as soi ON o.entity_id = soi.order_id where o.status = 'closed' and o.total_refunded is not null GROUP BY soi.product_id HAVING COUNT(soi.product_id) > 1;

インフラストラクチャエージェントを再起動します

データの読み取りを開始する前に、 インフラストラクチャ エージェントのドキュメント の手順に従ってインフラストラクチャ エージェントを再起動します。

Magento ビジネス インサイト ダッシュボードをインストールする

  1. one.newrelic.com > Add data> Dashboardsに移動します。

  2. 検索バーに「Magento ビジネス インサイト」と入力します。ダッシュボードが表示されます。

  3. それをクリックしてインストールします。

    Magento ダッシュボードはカスタム ダッシュボードと見なされ、 Dashboard[ダッシュボード] UI で見つけることができます。ダッシュボードの使用と編集については、 ダッシュボードのドキュメントを参照してください。

Magento データをクエリする

Magento アプリ データのクエリに興味がありますか?以下は、Magento プラットフォームに登録されている顧客の総数を確認する NRQL クエリの例です。

SELECT LATEST(`Registered Accounts`) AS 'Registered Accounts' FROM MYSQLCustomerEntityRegisteredUsers

次は何ですか?

データのクエリとカスタム ダッシュボードの作成について詳しくは、次のドキュメントをご覧ください。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.