Khái niệm về cấu hình chỉ số

Cấu hình chỉ số xác định các chiến dịch đo từ xa mà dịch vụ Đo từ xa chạy. Cấu hình chỉ số là một phiên bản của thông báo vùng đệm giao thức (protobuf) MetricsConfig. Cấu hình chỉ số chỉ định cách thu thập, xử lý và báo cáo dữ liệu. OEM có thể kích hoạt cấu hình chỉ số thông qua API của dịch vụ Đo từ xa. Bạn có thể chạy nhiều cấu hình cùng lúc.

Trước khi bắt đầu, hãy làm quen với cấu trúc SDV. Đây là một cấu trúc hướng dịch vụ mà các dịch vụ xuất bản dữ liệu dưới dạng thông báo protobuf. Các thông báo này giao tiếp bằng cách sử dụng ngăn xếp giao tiếp SDV thông qua RPC hoặc publish-subscribe.

Từ khóa

Cấu hình chỉ số điều phối việc thu thập dữ liệu bằng cách xác định nguồn dữ liệu, quy tắc xử lý và cơ chế báo cáo. Một trong những lợi ích chính của quy trình xử lý biên này là giảm mức sử dụng dữ liệu di động. Bằng cách xử lý dữ liệu tần số cao trên thiết bị và chỉ tải các dữ liệu tổng hợp hoặc thông tin chi tiết lên, bạn sẽ giảm đáng kể lượng dữ liệu được truyền đến đám mây.

Định nghĩa về cấu hình chỉ số bắt đầu bằng cách liệt kê các nguồn dữ liệu để sử dụng trong cấu hình. Đây là những dịch vụ cung cấp dữ liệu thông qua ngăn xếp giao tiếp SDV. Khi bạn kích hoạt một cấu hình, dịch vụ Đo từ xa sẽ kết nối với các nguồn này để truyền trực tuyến hoặc tìm nạp dữ liệu khi cần.

Cốt lõi của một cấu hình là khả năng xử lý dữ liệu biên, được quản lý thông qua trình tổng hợp dữ liệu có trạng thái. Mỗi trình tổng hợp đều sử dụng một trình tạo thông báo duy trì một phiên bản thông báo proto có trạng thái. Mỗi trường trong thông báo này được điền bằng cách đánh giá một biểu thức, xác định dữ liệu nào cần đọc từ các nguồn dữ liệu hoặc trình tổng hợp khác và những thao tác toán học, logic hoặc tổng hợp nào cần áp dụng cho dữ liệu. Bạn có thể áp dụng các phép tổng hợp bổ sung cho kết quả của một biểu thức.

Điều kiện kích hoạt là yếu tố chính để kiểm soát quy trình này. Chúng có thể kích hoạt định kỳ, để phản hồi dữ liệu mới hoặc khi các điều kiện dựa trên dữ liệu được đáp ứng. Trình kích hoạt quy định thời điểm các trình tổng hợp đánh giá trình tạo thông báo, thời điểm báo cáo chỉ số được tạo và có thể ảnh hưởng đến vòng đời cấu hình, ví dụ: bằng cách bắt đầu hoặc dừng thu thập dữ liệu.

Báo cáo chỉ số là kết quả cuối cùng. Mỗi báo cáo đều bao gồm tải trọng dữ liệu do một trình tạo thông báo xác định, cùng với siêu dữ liệu như dấu thời gian và mã báo cáo. Bạn có thể tạo báo cáo tại các thời điểm cụ thể trong vòng đời cấu hình, chẳng hạn như khi một cấu hình được kích hoạt hoặc huỷ kích hoạt. Các báo cáo được tạo sẽ được lưu trữ trong bộ nhớ và ứng dụng sẽ nhận được thông báo để truy xuất thông qua kênh thông báo trạng thái báo cáo.

Hình sau đây cung cấp một ví dụ mang tính khái niệm về cách các thành phần có thể tương tác trong một cấu hình chỉ số:

Sơ đồ khái niệm minh hoạ các nguồn dữ liệu, quy trình xử lý và báo cáo trong một cấu hình chỉ số

Hình 1. Nguồn dữ liệu, quy trình xử lý và báo cáo trong một cấu hình chỉ số.

Thành phần cấu hình chỉ số

Bạn có thể sử dụng cấu hình chỉ số để xác định các tác vụ thu thập dữ liệu và các quy trình xử lý phức tạp trên thiết bị. Phần này trình bày chi tiết các thành phần cốt lõi được dùng để xác định một chiến dịch dựa trên chỉ số. Các thành phần được trình bày theo thứ tự dữ liệu truyền qua hệ thống, từ đầu vào đến đầu ra. Bạn có thể xác định các thành phần này theo thứ tự bất kỳ. Bạn không bắt buộc phải xử lý dữ liệu bằng các trình tổng hợp và tính năng quản lý vòng đời.

  • Xác định nguồn dữ liệu
  • Xử lý dữ liệu bằng các đơn vị tổng hợp
  • Kiểm soát luồng thực thi bằng các điều kiện kích hoạt
  • Tạo báo cáo chỉ số
  • Quản lý vòng đời thu thập dữ liệu

Xác định nguồn dữ liệu

Nền tảng của mọi chiến dịch dựa trên chỉ số là dữ liệu. Trong cấu hình chỉ số, cơ chế nhận dữ liệu được trừu tượng hoá và bạn chỉ cần chỉ định tên mà nguồn dữ liệu có thể được xác định và chế độ kết nối (đăng ký hoặc theo yêu cầu). Nguồn dữ liệu có thể là bất kỳ dịch vụ nào cung cấp dữ liệu thông qua ngăn xếp giao tiếp SDV hoặc tự đăng ký trong Configurable Publisher Registry (Sổ đăng ký nhà xuất bản có thể định cấu hình), cho phép thu thập dữ liệu từ các ứng dụng không có phần mềm trung gian SDV. Mỗi nguồn dữ liệu phải có một tên riêng trong cấu hình để có thể được các thành phần cấu hình chỉ số khác tham chiếu, chẳng hạn như trình kích hoạt hoặc trình tổng hợp. Bạn có thể định cấu hình cách kết nối, tần suất nhận dữ liệu và cung cấp một đối tượng cấu hình dành riêng cho dịch vụ.

Cấu hình nguồn dữ liệu

Dịch vụ Đo từ xa có thể kết nối với một nguồn dữ liệu theo hai cách:

  • Getter: Phương thức này tìm nạp dữ liệu theo yêu cầu bất cứ khi nào một biểu thức được xác định trong cấu hình chỉ số cần đọc dữ liệu từ nguồn này. Điều này hữu ích cho những nguồn dữ liệu không cung cấp luồng dữ liệu liên tục hoặc khi bạn cần ảnh chụp nhanh dữ liệu không thường xuyên.
  • Đăng ký: Đây là phương thức mặc định. Thao tác này thiết lập một luồng dữ liệu liên tục từ nguồn. Bạn cần có loại kết nối này nếu muốn sử dụng một trình kích hoạt dữ liệu kích hoạt khi có tin nhắn mới đến từ nguồn này.

Khi sử dụng một gói thuê bao, bạn có thể định cấu hình:

  • Lấy mẫu phụ: Để tránh thu nạp dữ liệu quá thường xuyên, bạn có thể xác định khoảng thời gian tối thiểu giữa các thông báo liên tiếp từ cùng một nguồn. Nếu nguồn xuất bản dữ liệu nhanh hơn khoảng thời gian này, thì dịch vụ Đo từ xa sẽ điều chỉnh tốc độ thông báo và các trình kích hoạt dữ liệu chỉ kích hoạt cho những thông báo nhận được sau khi điều chỉnh tốc độ. Thao tác này sẽ lấy mẫu phụ dữ liệu một cách hiệu quả.
  • Truy xuất tin nhắn ban đầu: Bạn có thể định cấu hình dịch vụ để truy xuất tin nhắn gần đây nhất từ nguồn khi dịch vụ thiết lập gói thuê bao. Do đó, nguồn dữ liệu sẽ được điền sẵn một giá trị ngay lập tức nếu có giá trị, thay vì chờ thông báo mới đầu tiên được xuất bản. Điều này hữu ích trong các điều kiện kích hoạt hoặc bộ tổng hợp có điều kiện yêu cầu trạng thái ban đầu hoặc khi nguồn dữ liệu xuất bản không thường xuyên.

Bất kể loại nào, các thông báo đều được lưu vào bộ nhớ đệm nội bộ. Nếu nhiều biểu thức hoặc bộ tổng hợp yêu cầu dữ liệu từ cùng một nguồn trong một chu kỳ đánh giá duy nhất, hệ thống sẽ chỉ tìm nạp dữ liệu một lần, từ bộ nhớ đệm nếu một thông báo mới đến bằng cách sử dụng một thuê bao hoặc bằng một lệnh gọi duy nhất theo yêu cầu.

Xử lý dữ liệu bằng các đơn vị tổng hợp

Trong khi nguồn dữ liệu cung cấp dữ liệu thô, các trình tổng hợp sẽ thực hiện quy trình xử lý dữ liệu có trạng thái, dữ liệu biên. Các thành phần này sử dụng dữ liệu từ các nguồn dữ liệu hoặc các trình tổng hợp khác, chuyển đổi dữ liệu đó và cung cấp kết quả để các báo cáo chỉ số đọc hoặc các trình tổng hợp khác xử lý thêm. Điều này giúp bạn có thể tạo các quy trình xử lý nhiều giai đoạn, chẳng hạn như tính toán số liệu thống kê về tốc độ trong một bộ tổng hợp và sử dụng các số liệu thống kê đó trong một thành phần khác để phát hiện các mẫu hành vi lái xe.

Trình tổng hợp được kích hoạt để thực hiện các phép tính bằng một hoặc nhiều trình kích hoạt. Mỗi khi một trong các điều kiện kích hoạt của bộ tổng hợp được kích hoạt, bộ tổng hợp sẽ đánh giá các quy tắc của mình và cập nhật trạng thái nội bộ.

Bạn có thể định cấu hình một trình tổng hợp để đặt lại trạng thái sau khi giá trị của trình tổng hợp đó được một thành phần khác đọc. Điều này rất hữu ích khi tính toán số liệu thống kê trong các khoảng thời gian không trùng lặp.

Trình tạo thông báo xác định cấu trúc và logic của một trình tổng hợp. Trình tạo thông báo chỉ định cách tạo một thực thể của thông báo proto bằng cách mô tả cách tạo dữ liệu cho từng trường của thông báo đó. Đối với mỗi trường, một biểu thức sẽ xác định cách đọc dữ liệu từ nguồn dữ liệu và bộ tổng hợp, đồng thời áp dụng các thao tác cho dữ liệu này. Ngoài ra, bạn có thể áp dụng một phép tổng hợp. Đây là một phép tính hoặc thao tác thu thập được áp dụng cho kết quả của biểu thức theo thời gian.

Chúng tôi hỗ trợ các loại tổng hợp sau:

  • Toán học: Tính toán số liệu thống kê (trung bình, tối thiểu, tối đa, tổng, độ lệch chuẩn và delta) trên các giá trị do một biểu thức trả về trên mỗi điều kiện kích hoạt. Delta là sự khác biệt giữa giá trị số hiện tại và giá trị số trước đó do một biểu thức trả về.
  • Danh sách: Thu thập các giá trị do một biểu thức trả về vào một danh sách. Bạn có thể giới hạn kích thước danh sách để tạo một cửa sổ trượt (vùng đệm vòng) gồm các giá trị gần đây.
  • Count: Trường hợp đặc biệt khi không có biểu thức nào được chỉ định. Đếm số lần trường được đánh giá (tức là số lần trình tổng hợp hoặc báo cáo được kích hoạt).
  • Truyền qua: Sử dụng trực tiếp kết quả của một biểu thức mà không áp dụng một phép tổng hợp. Điều này hữu ích trong cấu hình báo cáo để truy cập vào các giá trị cuối cùng từ các trình tổng hợp.

Hình sau đây là sơ đồ khái niệm minh hoạ việc đánh giá bộ tổng hợp:

Sơ đồ khái niệm minh hoạ việc đánh giá bộ tổng hợp.

Hình 2. Đánh giá đơn vị tổng hợp.

Thực hiện phép tính hoặc xác định điều kiện bằng cách sử dụng biểu thức

Biểu thức được dùng trong trình tạo thông báo và trình kích hoạt có điều kiện để thực hiện các phép tính hoặc xác định điều kiện. Khi sử dụng Trình tạo cấu hình chỉ số (MCG) để tạo các đối tượng JSON Cấu hình chỉ số, các biểu thức được viết dưới dạng chuỗi mà con người có thể đọc được, sử dụng ký hiệu dấu chấm để truy cập vào các trường của nguồn dữ liệu (ví dụ: vehicle_speed.speed_value) và áp dụng nhiều thao tác. MCG dịch các chuỗi này thành một cấu trúc cây được tối ưu hoá, tương tự như cây cú pháp trừu tượng (AST), để đánh giá hiệu quả trên thiết bị trong thông báo protobuf MetricsConfig cuối cùng.

Toán tử và hàm

Biểu thức hỗ trợ các toán tử và hàm sau đây:

  • Số học: Hỗ trợ phép cộng, phép trừ (nhị phân và đơn vị), phép nhân, phép chia, phép chia lấy số dư và phép luỹ thừa.
  • Logic: Hỗ trợ AND, OR, NOT và XOR.
  • Tương quan: Hỗ trợ kiểm tra tính bằng nhau và so sánh lớn hơn và nhỏ hơn.
  • Danh sách: Kiểm tra xem một danh sách có chứa một giá trị cụ thể hay không.
  • Dấu thời gian: Trả về dấu thời gian tại thời điểm đánh giá theo đơn vị micro giây. Loại đồng hồ có thể là đồng hồ thời gian thực, thời gian đơn điệu kể từ khi khởi động (bao gồm cả thời gian tạm ngưng) hoặc thời gian đơn điệu kể từ khi khởi động hoặc lần tiếp tục gần đây nhất.
  • Giá trị tuyệt đối: Trả về giá trị tuyệt đối của một số.
  • Làm tròn: Làm tròn đến số nguyên gần nhất (round), trả về số nguyên lớn nhất nhỏ hơn hoặc bằng một số (floor) hoặc trả về số nguyên nhỏ nhất lớn hơn hoặc bằng một số (ceil).

Sau đây là một biểu thức mẫu đọc từ 2 nguồn dữ liệu và đánh giá thành true nếu tốc độ xe vượt quá 100 km/h và không có cảnh báo áp suất lốp:

(vehicle_speed.speed_value * 3.6) > 100 && tire_pressure.warning == false

Kiểm soát luồng thực thi bằng các điều kiện kích hoạt

Điều kiện kích hoạt là yếu tố điều phối cấu hình chỉ số; chúng kiểm soát thời điểm dữ liệu được xử lý và thời điểm báo cáo được tạo. Mỗi điều kiện kích hoạt phải có một tên riêng biệt.

Có 3 loại điều kiện kích hoạt:

  • Trình kích hoạt dữ liệu: Kích hoạt khi một nguồn dữ liệu có kết nối đăng ký xuất bản một thông báo mới (sau khi lấy mẫu phụ, nếu được định cấu hình).
  • Điều kiện kích hoạt định kỳ: Kích hoạt theo khoảng thời gian cố định.
  • Điều kiện kích hoạt có điều kiện: Kích hoạt khi đáp ứng một điều kiện logic cụ thể.

Trình kích hoạt có điều kiện

Trình kích hoạt có điều kiện sẽ lắng nghe các trình kích hoạt khác (dữ liệu, định kỳ hoặc trình kích hoạt có điều kiện khác) và khi một trong những trình kích hoạt đó kích hoạt, trình kích hoạt có điều kiện sẽ đánh giá một biểu thức. Điều kiện kích hoạt có điều kiện chỉ kích hoạt nếu kết quả của biểu thức đáp ứng một điều kiện cụ thể.

Bạn có thể định cấu hình một điều kiện kích hoạt có điều kiện để kích hoạt dựa trên một số loại điều kiện:

  • Giá trị: Khi biểu thức đánh giá thành true (hoặc khác 0) hoặc false (hoặc bằng 0).
  • Sườn lên: Khi biểu thức boolean thay đổi từ false thành true hoặc giá trị số tăng lên.
  • Sườn xuống: Khi biểu thức boolean thay đổi từ true thành false hoặc giá trị số giảm.
  • Khi thay đổi: Bất cứ khi nào kết quả của biểu thức khác với giá trị trước đó.
Lọc các thay đổi trạng thái gây ồn

Đối với các sự kiện kích hoạt dựa trên cạnh hoặc khi có thay đổi, bạn có thể lọc ra các thay đổi trạng thái ngắn hoặc có nhiều nhiễu (trục trặc) bằng cách yêu cầu điều kiện duy trì ở trạng thái mới trong thời gian tối thiểu trước khi sự kiện kích hoạt hoạt động.

Ví dụ: bạn có thể định cấu hình một điều kiện kích hoạt chỉ kích hoạt nếu vehicle_speed > 100 chuyển thành true và duy trì trạng thái true trong ít nhất 5 giây. Điều này ngăn chặn trình kích hoạt hoạt động do tốc độ đọc tăng đột biến trong chốc lát. Bạn cũng có thể yêu cầu tất cả các giá trị xuất hiện trong thời gian giữ này phải hoàn toàn bằng nhau.

Tạo báo cáo chỉ số

Sau khi dữ liệu được xử lý, bạn sẽ xác định cách thức và thời điểm dữ liệu được đóng gói thành báo cáo.

Báo cáo được xác định bằng cấu hình báo cáo chỉ số. Cấu hình này sử dụng trình tạo thông báo để xác định cấu trúc và nội dung của đầu ra. Khi một trong các điều kiện kích hoạt của báo cáo được kích hoạt, trình tạo thông báo sẽ đánh giá các chỉ định trường của báo cáo để tạo cấu trúc tải trọng dữ liệu của báo cáo.

Mỗi báo cáo được tạo là một thực thể của thông báo Protobuf MetricsReport, bao bọc đầu ra của trình tạo thông báo trong trường payload và thêm siêu dữ liệu. Dịch vụ Đo từ xa sẽ tự động thêm siêu dữ liệu sau đây vào mỗi MetricsReport:

  • Giá trị nhận dạng duy nhất trên toàn cầu (UUID) cho báo cáo
  • Số báo cáo tuần tự, tăng lên cho mỗi báo cáo do cấu hình báo cáo này tạo
  • Dấu thời gian cho biết thời điểm tạo báo cáo
  • Lý do tạo (ví dụ: do một quy tắc kích hoạt hoặc được tạo khi tắt)
  • UUID và phiên bản của cấu hình chỉ số đã tạo báo cáo
  • Tên của cấu hình báo cáo chỉ số

Quyền kiểm soát việc tạo báo cáo

Mặc dù báo cáo thường được tạo để phản hồi các điều kiện kích hoạt, nhưng bạn cũng có thể định cấu hình để báo cáo được tạo tại các thời điểm cụ thể trong vòng đời của cấu hình chỉ số:

  • Báo cáo khi kích hoạt: Nếu được bật, hệ thống sẽ tạo một báo cáo ban đầu ngay khi cấu hình chỉ số được kích hoạt.
  • Báo cáo cuối cùng: Nếu được bật, hệ thống sẽ tạo báo cáo cuối cùng khi quá trình thu thập dữ liệu bị tạm dừng hoặc dừng, hoặc khi dịch vụ Đo từ xa tắt. Báo cáo này chứa dữ liệu được tổng hợp cho đến thời điểm đó, giúp đảm bảo không bị mất dữ liệu vào cuối phiên.

Quản lý vòng đời thu thập dữ liệu

Theo mặc định, cấu hình chỉ số sẽ bắt đầu thu thập và xử lý dữ liệu ngay khi được một ứng dụng kích hoạt và tiếp tục cho đến khi ứng dụng đó huỷ kích hoạt. Tuy nhiên, bạn có thể kiểm soát vòng đời này một cách chi tiết hơn bằng cách xác định các điều kiện kích hoạt bắt đầu hoặc dừng thu thập dữ liệu hoặc cấu hình chỉ số:

  • Điều kiện kích hoạt bắt đầu: Nếu được xác định, quá trình thu thập dữ liệu chỉ bắt đầu khi điều kiện kích hoạt này hoạt động. Nếu một trình kích hoạt dừng đã tạm dừng quá trình thu thập, thì trình kích hoạt bắt đầu sẽ tiếp tục quá trình này.
  • Điều kiện dừng: Nếu được xác định, điều kiện này sẽ tạm dừng việc thu thập dữ liệu. Hoạt động tổng hợp và tạo báo cáo sẽ dừng cho đến khi trình kích hoạt bắt đầu hoạt động trở lại.
  • Huỷ kích hoạt trình kích hoạt: Trình kích hoạt này sẽ huỷ kích hoạt cấu hình chỉ số theo cách tương tự như lệnh gọi deactivate_metrics_config từ ứng dụng.

Ví dụ: bạn có thể xác định một điều kiện kích hoạt sẽ kích hoạt khi vehicle_state thay đổi thành DRIVING làm điều kiện kích hoạt bắt đầu và một điều kiện khác sẽ kích hoạt khi vehicle_state thay đổi thành PARKED làm điều kiện kích hoạt dừng. Điều này giúp đảm bảo rằng dữ liệu chỉ được thu thập khi xe đang di chuyển.