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.
Truy cập vào tài liệu Apigee X.
thông tin

Dấu hiệu

Biến tuỳ chỉnh được tạo bằng chính sách StatisticsCollector sẽ không xuất hiện trong mục Phương diện tuỳ chỉnh trong Báo cáo tuỳ chỉnh của Analytics trong giao diện người dùng Edge.

Thông báo lỗi

Không thấy lỗi nào.

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

Bảng sau đây liệt kê những 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 tiêu chuẩn Người dùng Edge Private Cloud và Public Cloud
Không có lưu lượng truy cập trên API Proxy triển khai chính sách StatisticsCollector Người dùng Edge Private Cloud và Public Cloud
Biến tuỳ chỉnh không được chuyển đến Máy chủ Postgres Người dùng Edge Private Cloud

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

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

Chẩn đoán

Nếu tên biến tuỳ chỉnh được dùng trong chính sách StatisticsCollector không tuân thủ các nguyên tắc tiêu chuẩn (xem phần Giải pháp), thì tê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, vì vậy, 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 tùy 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 được dùng trong chính sách StatisticsCollector trong API proxy 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 đổi tên biến thành "product_id".
  • Không phân biệt chữ hoa và chữ thường.
  • Bạn không được phép 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. Ví dụ: "người dùng" không được phép. Để biết thêm thông tin, hãy xem Từ khoá SQL.

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

Không có lưu lượng truy cập trên API Proxy triển khai chính sách StatisticsCollector

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 StatisticsCollector, 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

Thực hiện một số lệnh gọi đến proxy API triển khai chính sách StatisticsCollector.

Chờ một lúc rồi 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 tùy chỉnh hay không.

Nếu vấn đề vẫn tiếp diễn, hãy chuyển sang phần Biến tuỳ chỉnh không được đẩy đến Máy chủ Postgres.

Biến tuỳ chỉnh không được chuyển đến Máy chủ Postgres

Chẩn đoán

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

Đôi khi, thông báo từ ZooKeeper có thể không đến được 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 tùy chỉnh.

Cách xác định vị trí 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 biến tuỳ chỉnh trong đầu ra 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ó được thêm vào cơ sở dữ liệu Postgres hay không:
    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 cột biến tuỳ chỉnh bị thiếu trong bảng dữ liệu thực tế. Đây là lý do khiến cột này không xuất hiện trong Phương diện tuỳ chỉnh.

Độ phân giải

Giải pháp 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 bên dưới:

  1. Tạo tệp /opt/apigee/customer/application/postgres-server.properties trên máy chủ Postgres nếu chưa có.
  2. Thêm dòng sau vào tệp này:
    conf_pg-agent_forceonboard=true
  3. Đảm bảo Apigee sở hữu tệp này bằng cách sử 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 API proxy sử dụng chính sách StatisticsCollector.
  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 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 liên hệ với Nhóm hỗ trợ Apigee Edge.