Biến tuỳ chỉnh không hiển thị cho báo cáo tuỳ chỉnh của Analytics

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Triệu chứng

Biến tuỳ chỉnh được tạo bằng chính sách Thu thập dữ liệu thống kê sẽ không hiển thị trong Phương diện tuỳ chỉnh của Báo cáo tuỳ chỉnh của Analytics trên giao diện người dùng Edge.

Thông báo lỗi

Không phát hiện lỗi nào.

Các nguyên nhân có thể

Bảng sau liệt kê các nguyên nhân có thể gây ra vấn đề này:

Nguyên nhân Cho
Biến tuỳ chỉnh không tuân thủ các nguyên tắc chuẩn Người dùng Edge về dịch vụ đám mây riêng tư và công khai
Không có lưu lượng truy cập trên Proxy API khi triển khai chính sách Thống kê thu thập Người dùng Edge về dịch vụ đám mây riêng tư và công khai
Biến tuỳ chỉnh không được đẩy đến Máy chủ Postgres Người dùng Edge Private Cloud

Hãy nhấp vào một đường liên kết trong bảng để xem các giải pháp có thể áp dụng cho nguyên nhân đó.

Biến tùy chỉnh không tuân thủ các nguyên tắc chuẩn

Chẩn đoán

Nếu tên biến tuỳ chỉnh dùng trong chính sách Thống kê thu thập không tuân thủ các nguyên tắc chuẩn (xem bài viết Giải pháp), thì tên biến đó sẽ không xuất hiện trong Báo cáo tuỳ chỉnh.

Đoạn mã dưới đây cho thấy tên biến "product id" có dấu cách, do đó, tên biến này sẽ không xuất hiện trong Phương diện tuỳ chỉnh của Báo cáo tuỳ chỉnh.

  <StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
      <Statistic name="productID" ref="product id" type="string">999999</Statistic>
    </Statistics>
  </StatisticsCollector>

Độ phân giải

Tên biến tuỳ chỉnh dùng trong chính sách Thống kê thu thập dữ liệu trong proxy API phải tuân thủ các nguyên tắc sau:

  • Tên có thể bao gồm [a-z][0-9] và '_'.
  • Tên không được chứa dấu cách. Ví dụ: trong mã mẫu ở trên, bạn nên thay đổi tên biến thành "product_id".
  • Trường hợp bị bỏ qua.
  • Bạn không được phép sử dụng các từ khoá dành riêng được liệt kê trong bảng tại đường liên kết sau đây. Ví dụ: không được phép sử dụng "người dùng". Để biết thêm thông tin, hãy xem bài viết Từ khoá SQL.

Nếu sự cố vẫn tiếp diễn, hãy chuyển đến phần Không có lưu lượng truy cập trên Proxy API, triển khai chính sách Thống kê thu thập.

Không có lưu lượng truy cập trên API Proxy (API Proxy) triển khai chính sách Thống kê thu thập thông tin

Chẩn đoán

Nếu không có lưu lượng truy cập trên proxy API triển khai chính sách Thống kê thu thập, thì biến tuỳ chỉnh sẽ không xuất hiện trong Báo cáo tuỳ chỉnh.

Độ phân giải

Hãy thực hiện một số lệnh gọi đến proxy API triển khai chính sách Thống kê thu thập.

Hãy đợi một thời gian và kiểm tra xem(các) biến tuỳ chỉnh có xuất hiện trong phương diện tuỳ chỉnh trong Báo cáo tuỳ chỉnh hay không.

Nếu vấn đề vẫn tiếp diễn, hãy chuyển đến mục Biến tuỳ chỉnh chưa được đẩy đến Máy chủ Postgres.

Biến tuỳ chỉnh chưa được đẩy đến Máy chủ Postgres

Chẩn đoán

Khi một biến tuỳ chỉnh được tạo trong proxy API và các lệnh gọi API được thực hiện, trước tiên, biến đó sẽ được lưu trữ trong bộ nhớ trên Bộ xử lý thông báo. Sau đó, Trình xử lý thông báo sẽ gửi thông tin về biến mới cho ZooKeeper, sau đó gửi biến này đến máy chủ Postgres để thêm biến dưới dạng một cột trong cơ sở dữ liệu Postgres.

Đôi khi, thông báo từ ZooKeeper có thể không gửi được đến máy chủ Postgres do sự cố mạng. Do lỗi này, biến tuỳ chỉnh có thể không xuất hiện trong Báo cáo tuỳ chỉnh.

Cách xác định vị trí bị thiếu biến tuỳ chỉnh:

  1. Tạo cây ZooKeeper bằng lệnh sau:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. Tìm kiếm biến tuỳ chỉnh trong đầu ra của cây ZooKeeper.
  3. Nếu biến tuỳ chỉnh tồn tại trong cây ZooKeeper, hãy thực thi các lệnh sau để kiểm tra xem biến tuỳ chỉnh đã được thêm vào cơ sở dữ liệu Postgres hay chưa:
    1. Trên nút Postgres, hãy đăng nhập vào PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Chạy truy vấn SQL sau:
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. Rất có thể bạn sẽ thấy rằng cột biến tùy chỉnh sẽ bị thiếu trong bảng dữ kiện. Đó là lý do khiến cột này không xuất hiện trong Phương diện tùy chỉnh.

Độ phân giải

Giải pháp số 1: Khởi động lại máy chủ Postgres

  1. Khởi động lại máy chủ Postgres để buộc máy chủ này đọc tất cả thông tin liên quan đến Analytics từ Zookeeper:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    Nếu vấn đề vẫn tiếp diễn, hãy áp dụng Giải pháp 2.

Giải pháp 2: Bật thuộc tính forceonboard

Bật thuộc tính forceonboard bằng cách làm theo các bước dưới đây:

  1. Tạo tệp /opt/apigee/customer/application/postgres-server.properties trên máy chủ Postgres nếu chưa có tệp này.
  2. Thêm dòng sau vào tệp này:
    conf_pg-agent_forceonboard=true
  3. Hãy đảm bảo rằng tệp này do Apigee sở hữu bằng cách dùng lệnh sau:
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. Khởi động lại máy chủ Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. Nếu bạn có nhiều máy chủ Postgres, hãy lặp lại các bước trên cho tất cả các máy chủ Postgres.
  6. Huỷ triển khai và triển khai proxy API sử dụng chính sách Thống kê thu thập.
  7. Chạy các lệnh gọi API.
  8. Kiểm tra xem(các) biến tuỳ chỉnh có xuất hiện trong các phương diện tuỳ chỉnh trong Báo cáo tuỳ chỉnh hay không.

Nếu sự cố vẫn tiếp diễn, hãy liên hệ với Bộ phận hỗ trợ của Apigee.