Tin tức và phân tích của tất cả các thiết bị di động

Giới thiệu về OpenTelemetry cho người mới bắt đầu

Hãy nói về OpenTelemetry – cách tiêu chuẩn trung lập với nhà cung cấp để thu thập dữ liệu từ xa.

Đảm bảo khả năng hiển thị tốt hơn trong ứng dụng là một thách thức lớn đối với bất kỳ nhà phát triển nào vì họ phải nắm bắt từ xa ứng dụng. Từ điển Cambridge định nghĩa phép đo từ xa là khoa học hoặc quá trình thu thập thông tin về các vật thể ở xa và gửi thông tin đó bằng điện tử đến một nơi nào đó.

Ví dụ: một lần nhấp hoặc phiên người dùng trên một trang web sẽ tạo ra nhiều yêu cầu và dấu vết chảy giữa các mạng, vi dịch vụ, cơ sở dữ liệu, v.v.

OpenTelemetry là một nền tảng quan sát, một tập hợp các thành phần được lựa chọn kỹ lưỡng có thể được sử dụng cùng nhau hoặc gọi món. Ngoài ra, các nhà phát triển của các khung và thư viện mà tất cả chúng ta sử dụng ngày nay hiện có một cách tiêu chuẩn để lưu trữ dữ liệu từ xa trong các thư viện và khung này, cung cấp cho người dùng cuối nhiều thông tin chi tiết có sẵn về những gì các khung này đang thực hiện.

Để hiểu OpenTelemetry, trước tiên bạn cần biết theo dõi phân tán là gì.

Theo dõi phân tán là gì?

Khi các ứng dụng của chúng tôi trở nên phức tạp hơn và có nhiều dịch vụ hơn tham gia vào việc xử lý lưu lượng người dùng và thực hiện giao dịch, thì việc hiểu cách các yêu cầu đi qua các dịch vụ của chúng tôi và cách mỗi dịch vụ đóng góp vào độ trễ chung ngày càng trở nên quan trọng. Đó là những gì theo dõi phân phối làm. Nắm bắt độ trễ của các yêu cầu của người dùng và thời gian cần thiết để mỗi vi dịch vụ dọc theo đường dẫn trả về phản hồi.

Khi có yêu cầu của người dùng, chúng tôi muốn tạo dấu vết, tức là tất cả thông tin mô tả cách hệ thống của chúng tôi phản hồi yêu cầu của người dùng. Dấu vết được tạo thành từ các phạm vi và mỗi phạm vi đại diện cho một cặp yêu cầu và phản hồi cụ thể liên quan đến việc xử lý yêu cầu của người dùng. Khoảng chính mô tả độ trễ mà người dùng cuối quan sát được. Dải con được sử dụng để hiểu cách một dịch vụ cụ thể trong hệ thống phân tán được gọi và phản hồi với thông tin về độ trễ.

OpenTelemetry là gì?

OpenTelemetry là một dự án nguồn mở do CNCF tổ chức, cung cấp một cách tiêu chuẩn để tạo dữ liệu đo từ xa. Nó được tạo ra từ sự kết hợp của OpenTracing, tiêu chuẩn để tạo dữ liệu theo dõi và OpenCensus, là tiêu chuẩn để tạo dữ liệu số liệu.

OpenTelemetry cung cấp một bộ API, tác nhân, dịch vụ thu thập và thư viện để nắm bắt các dấu vết và chỉ số được phân phối từ ứng dụng của bạn. OpenTelemetry tiêu chuẩn hóa cách chúng tôi thu thập dữ liệu đo từ xa và gửi dữ liệu đó đến phần phụ trợ do bạn chọn. Điều này cung cấp một đường dẫn độc lập với nhà cung cấp đến thiết bị đo đạc và mang đến cho bạn sự linh hoạt để thay đổi phần phụ trợ mà không cần thiết lập lại mã của bạn.

Vì vậy, bạn có thể thiết lập các ứng dụng của mình với tác nhân bất khả tri của nhà cung cấp trong khi vẫn gửi số liệu và dấu vết của mình tới nhà cung cấp SaaS như Datadog. Sau đó, nếu bạn muốn thay đổi nhà cung cấp (ví dụ: từ Datadog sang Dynatrace), bạn có thể thực hiện việc đó mà không cần thay đổi mã ứng dụng.

Dự án OpenTelemetry nhằm mục đích cung cấp một bộ thư viện API và tác nhân duy nhất để nắm bắt các chỉ số và dấu vết được phân phối từ các ứng dụng. Điều này áp dụng cho nhiều ngôn ngữ và nền tảng. Dự án OpenTelemetry cũng bao gồm một dịch vụ thu thập tùy chọn và có một kho lưu trữ thông số kỹ thuật chuyên dụng. Rõ ràng, OpenTelemetry không phải là Jaeger hay Prometheus, là những back-end có thể quan sát được. Nhưng nó giúp xuất dữ liệu sang nguồn mở và back-end thương mại.

Dưới đây là các tính năng được cung cấp bởi OpenTelemetry:

  • Chuẩn hóa việc thu thập dữ liệu từ xa mà các tổ chức có thể theo dõi, giúp việc di chuyển giữa các nhà cung cấp trở nên dễ dàng hơn
  • Quy ước ngữ nghĩa tiêu chuẩn mở, độc lập với nhà cung cấp để thu thập dữ liệu
  • Collector có thể được triển khai như một tác nhân hoặc cổng hoặc theo nhiều cách khác nhau
  • Hỗ trợ nhiều định dạng lan truyền ngữ cảnh để di chuyển
  • Một giải pháp toàn diện để tạo, phát, thu thập, xử lý và xuất dữ liệu từ xa
  • Khả năng gửi dữ liệu đến các đích khác nhau song song với toàn quyền kiểm soát chúng

Các thành phần OpenTelemetry

Dưới đây là các yếu tố cơ bản của OpenTelemetry:

  • Proto: Thành phần này được sử dụng để xác định đa tạp, thư viện thiết bị, v.v., là các loại giao diện độc lập với ngôn ngữ cho OpenTelemetry.
  • Bộ sưu tập: Bộ sưu tập được sử dụng để nhận, xử lý và xuất dữ liệu từ xa. Việc triển khai bộ sưu tập này phải độc lập với nhà cung cấp. Theo mặc định, tất cả phép đo từ xa được xuất bởi các thư viện thiết bị ở vị trí này.
  • Đặc điểm kỹ thuật: Thành phần này mô tả các yêu cầu và kỳ vọng của việc triển khai bằng nhiều ngôn ngữ khác nhau, bao gồm API, SDK và dữ liệu. API tạo khả năng đo từ xa, xử lý và xuất để triển khai các API do SDK cung cấp. Dữ liệu có các quy ước ngữ nghĩa để hỗ trợ tất cả các loại nhà cung cấp mà không cần thay đổi mã.
  • Instrumentation Libraries: Chúng có sẵn bằng nhiều ngôn ngữ như một phần của dự án OpenTelemetry. Các thư viện này được sử dụng để cung cấp khả năng quan sát cho các thư viện khác để tất cả các ứng dụng được quan sát bởi lệnh gọi API OpenTelemetry.

Kiến trúc từ xa mở

Ảnh từ di tích mới

Ở cấp độ cao, OpenTelemetry bao gồm ba thành phần chính:

  • Một bộ API dành cho các ứng dụng công cụ, thư viện và nền tảng.
  • SDK triển khai các API.
  • Một bộ sưu tập tùy chọn có thể thu thập, tổng hợp và xuất phép đo từ xa ở bất kỳ đâu.

Mục đích của API là cho phép tạo công cụ cho các thư viện và mã ứng dụng. API có bốn phần chính: theo dõi, bộ đếm, ngữ cảnh chung và quy ước ngữ nghĩa.

  • Tracer API hỗ trợ tạo, chú thích và hoàn thành phạm vi.
  • API thước đo bao gồm nhiều công cụ đo lường. Ví dụ về các công cụ như vậy là bộ quan sát, bộ ghi giá trị, bộ đếm.
  • Bạn có thể theo dõi và thực thi ngữ cảnh phạm vi bằng cách bật API ngữ cảnh và truyền bá ngữ cảnh đó cả bên trong và bên ngoài hệ thống.
  • Tất cả các nguyên tắc và quy tắc liên quan đến việc đặt tên chủ yếu, chẳng hạn như đặt tên cho các khoảng, thuộc tính, nhãn và công cụ số liệu, được chứa trong các quy ước ngữ nghĩa. Các quy ước này được triển khai để đảm bảo tính nhất quán giữa các triển khai ngôn ngữ khác nhau và các công cụ bên ngoài.

Trong ngữ cảnh dùng chung, việc triển khai ngữ cảnh nằm giữa trình theo dõi và thước đo, đồng thời cho phép tất cả các bản ghi chỉ số không phải là người quan sát trong ngữ cảnh khoảng thời gian thực thi. Một tính năng cho phép SDK nắm bắt các khoảng thời gian mẫu cho các giá trị chỉ số. Bạn có thể tùy chỉnh bối cảnh bằng bộ truyền cho phép bạn truyền bối cảnh phạm vi đến và từ hệ thống, điều này cho phép theo dõi phân tán thực sự.

Collector là một phần thiết yếu của kiến ​​trúc OpenTelemetry. Đây là một dịch vụ độc lập có thể nhận, xử lý và xuất phép đo từ xa từ nhiều nguồn khác nhau, bao gồm OpenCensus, Zipkin, Jaeger và OpenTelemetry. Sử dụng bộ sưu tập, bạn có thể xuất phạm vi và số liệu cho nhiều nhà cung cấp và hệ thống đo từ xa nguồn mở.

Kiến trúc OpenTelemetry cung cấp giải pháp đo từ xa hoàn chỉnh ngay lập tức. Bạn cũng có thể tùy chỉnh bằng cách sử dụng nhiều điểm mở rộng khi cần thiết.

OpenTelemetry hoạt động như thế nào?

Bên trong mỗi dịch vụ trong quá trình triển khai của bạn, hãy cài đặt ứng dụng khách OpenTelemetry. Máy khách là SDK; Đổi lại, SDK có API. Các thư viện và khung ứng dụng sử dụng API công cụ này để mô tả công việc chúng thực hiện. SDK sau đó xuất các quan sát đã thu thập được sang dịch vụ truyền dữ liệu có tên là Collector.

OpenTelemetry có giao thức dữ liệu riêng, OTLP, nhưng bộ sưu tập có thể dịch OTLP sang nhiều định dạng khác nhau, bao gồm Zipkin, Jaeger và Prometheus. Điều đáng chú ý là OpenTelemetry không cung cấp công cụ phân tích hoặc phụ trợ của riêng nó; điều này là do nó là một nỗ lực tiêu chuẩn hóa ở trung tâm của OpenTelemetry. Mục tiêu là phát triển một ngôn ngữ chung để mô tả hoạt động của máy tính trong môi trường đám mây. Mục tiêu không phải là chuẩn hóa cách chúng tôi phân tích dữ liệu này. Thay vào đó, chúng tôi hy vọng OpenTelemetry sẽ giúp thúc đẩy thế giới khả năng quan sát tiến lên bằng cách cho phép khởi chạy các công cụ phân tích mới một cách nhanh chóng mà không cần xây dựng lại toàn bộ hệ sinh thái phần mềm đo từ xa.

Khi bạn gửi nhiều dữ liệu qua hệ thống, có nhiều điều cần xem xét. May mắn thay, OpenTelemetry đã nghĩ ra tất cả mọi thứ và có giải pháp cho từng câu hỏi này. Trước hết, OpenTelemetry linh hoạt và hỗ trợ nhiều định dạng lan truyền ngữ cảnh. Điều này có nghĩa là ngay cả khi có một tiêu chuẩn, vẫn có một sự lựa chọn trong tiêu chuẩn đó. Vì vậy, nếu bạn đang sử dụng thứ gì đó như định dạng bối cảnh theo dõi w3c hoặc truyền bá b3, thì đây là các tiêu chuẩn khác nhau trong tiêu chuẩn cho phép các dịch vụ của bạn kết nối các dấu chấm.

Đăng kí

OpenTelemetry thu thập nhiều quan sát khác nhau, trong đó quan trọng nhất là các chỉ số theo dõi phân tán và tài nguyên hệ thống. Thay vì coi chúng là các tín hiệu riêng biệt, OpenTelemetry kết hợp chúng lại với nhau và cung cấp chỉ mục cũng như ngữ cảnh cho phép tổng hợp và lập chỉ mục chéo tất cả các tín hiệu này ở mặt sau.

Ngoài việc thu thập dữ liệu, OpenTelemetry cung cấp khả năng xử lý dữ liệu và tạo đường dẫn cho phép bạn thay đổi định dạng dữ liệu, thao tác dữ liệu và tất cả các công cụ bạn cần để xây dựng một đường dẫn đo từ xa mạnh mẽ trong một hệ thống hiện đại.

Đó là tất cả về OpenTelemetry, hãy tiếp tục và dùng thử công cụ này.

Mục lục