• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Magento 비즈니스 인사이트

Magento 비즈니스 인사이트 대시보드는 Magento 전자 상거래 애플리케이션의 성능에 대한 종합적인 보기를 제공합니다. 대시보드를 사용하면 위험 수익, 다운타임으로 인한 위험 주문, 시스템 성능 저하와 같은 주요 비즈니스 메트릭을 쉽게 추적할 수 있습니다. 대시보드를 사용하여 앱 성능 문제를 진단하고 코드를 최적화할 수도 있습니다.

Magento 비즈니스 인사이트 대시보드는 Magento 앱 데이터의 중앙 보기를 제공합니다.

New Relic에서 Magento 앱 모니터링을 시작하려면 다음 단계에 따라 앱 데이터를 New Relic으로 보내고 Magento 비즈니스 인사이트 대시보드에서 확인하십시오.

인프라 에이전트 설치

인프라 에이전트는 호스트를 모니터링하고 CPU 사용량, 메모리 사용량, 스토리지 사용량, 디스크 사용량 및 네트워크 트래픽과 같은 지표를 보고합니다.

에이전트를 설치하려면 다음 설치 방법 중 하나를 선택하십시오.

PHP 에이전트 설치

당사의 PHP 에이전트는 AJAX 성능, 오류율, 기간, 핵심 웹 바이탈 및 처리량과 같은 애플리케이션 및 브라우저 관련 지표를 보고합니다.

에이전트를 설치하려면 다음 설치 방법 중 하나를 선택하십시오.

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 monitoring integration [Elasticsearch 모니터링 통합을] 참조하십시오.

합성 모니터링 설정

당사의 합성 모니터는 다양한 위치에서 앱을 테스트하고 서버 가동 중지 시간을 캡처합니다. Magento 비즈니스 인사이트 대시보드에서 이 데이터를 볼 수 있습니다.

합성 모니터를 설정하려면 가이드 설치의 단계를 따르십시오.

Flex 통합 생성

맞춤형 Flex 통합을 통해 앱 데이터베이스의 쿼리를 통해 비즈니스 메트릭을 캡처할 수 있습니다.

Flex 통합을 생성하려면:

  1. nri-flex 구성 파일을 만듭니다.

    • 구성 파일 경로: /etc/newrelic-infra/integrations.d/
    • 구성 파일 이름: mysql-database-config.yml
  2. 구성 파일에 다음 코드 조각을 추가합니다. USERNAME, PASSWORDDATABASE_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 대시보드는 사용자 지정 대시보드로 간주되며 Dashboards UI에서 찾을 수 있습니다. 대시보드 사용 및 편집에 대한 자세한 내용은 대시보드 문서 를참조하십시오.

Magento 데이터 쿼리

Magento 앱 데이터 쿼리에 관심이 있으십니까? 다음은 Magento 플랫폼에 등록된 총 고객 수를 확인하는 NRQL 쿼리의 예입니다.

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

다음은 뭐지?

데이터 쿼리 및 맞춤형 대시보드 생성에 대해 자세히 알아보려면 다음 문서를 확인하세요.

Copyright © 2024 New Relic Inc.

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