Chuyển đến nội dung chính
Nguồn tùy chỉnh dùng để kết nối một hệ thống không có preset trong Resolve: một công cụ kiểm tra uptime nội bộ, một cron job, một script deploy, hoặc một nhà cung cấp mà CloudThinker chưa liệt kê. Nếu hệ thống đó có thể gửi HTTP POST với body JSON, các sự kiện của nó có thể mở sự cố và kích hoạt phân tích nguyên nhân gốc (RCA).

Cách hoạt động

Bạn tạo một endpoint, gửi đến đó một sự kiện thực, rồi nhấn vào các trường trong sự kiện đó để cho Resolve biết trường nào là tiêu đề, mức độ nghiêm trọng, v.v. Vì bạn chọn từ một payload mà hệ thống của bạn thực sự đã gửi, mọi ánh xạ bạn lưu đều trỏ đến một trường có tồn tại. Trong Pulse, mỗi sự kiện được lọc nhiễu trước. Những gì còn lại là một signal, được nhóm với các signal liên quan và chuyển vào một sự cố khi cần xử lý.
Nguồn tùy chỉnh không giống với webhook hội thoại. Nguồn tùy chỉnh cung cấp dữ liệu cho Pulse và mở sự cố. Nếu bạn muốn sự kiện bắt đầu một cuộc chat với CloudThinker, hãy dùng webhook.

Điều kiện tiên quyết

  • Vai trò Admin của workspace. Developer và Viewer có thể xem nguồn nhưng không thể thêm hay thay đổi. Xem Vai trò.
  • Một hệ thống có thể gửi request POST với body là JSON object. Nguồn mới yêu cầu header Authorization. Nếu hệ thống của bạn không thể đặt header, xem Tùy chọn xác thực.
  • Một cách để kích hoạt một sự kiện tiêu biểu theo yêu cầu, chẳng hạn nút test hoặc lệnh curl.

Tạo nguồn

Vào Resolve → Integrations, mở thẻ Custom source, và nhấn Add signal. Mọi nguồn tùy chỉnh bạn tạo đều được liệt kê trên thẻ này.
1

Đặt tên nguồn

Nhập Source name mà nhóm của bạn sẽ nhận ra, ví dụ Acme uptime, và nhấn Create endpoint.
2

Sao chép URL và secret

Hộp thoại hiển thị Webhook URL và Secret Key. Sao chép cả hai vào hệ thống của bạn ngay.Secret Key chỉ hiển thị một lần. Nếu bạn làm mất, xem Xoay vòng hoặc thay thế thông tin xác thực.
3

Gửi một sự kiện thực

Sự kiện ghi nhận đi qua Pulse như mọi sự kiện khác, và Auto-investigate đã được bật. Nếu Pulse đánh giá sự kiện này cần xử lý, bước phân loại có thể mở một sự cố và bắt đầu điều tra. Để giảm khả năng đó, hãy thêm "title": "Test notification, ignore" và "severity": "info" ở cấp cao nhất vào body ghi nhận, cạnh các trường thực của bạn. Cho đến khi bạn lưu ánh xạ, Resolve đọc hai key đó, và Pulse coi thông báo test là không cần xử lý. Cách này không đảm bảo tuyệt đối: nếu sự cố vẫn được mở, hãy đóng sự cố đó.Hai key đó xuất hiện trong bộ chọn. Đừng ánh xạ chúng. Thay vào đó hãy chọn các trường thực của bạn, chẳng hạn event.data.title.
Kích hoạt sự kiện từ hệ thống của bạn. Hộp thoại chờ và tự cập nhật khi sự kiện đến. Nếu hộp thoại không cập nhật sau khi bạn gửi, hãy gửi lại và nhấn Check again.Gửi một sự kiện tiêu biểu, không phải body test trống. Bạn chỉ có thể ánh xạ các trường mà sự kiện này chứa.
4

Ánh xạ các trường

Khi hộp thoại hiển thị Payload received, nhấn Map the fields. Mọi trường trong JSON đã ghi nhận được liệt kê cùng giá trị. Chọn trường cho Incident title, rồi bất kỳ trường nào trong Severity, Service, Resource và Description. Nhấn Save mapping. Hộp thoại đóng lại.Các trường bên trong một danh sách hiển thị kèm chỉ số, chẳng hạn alerts[0].labels.severity, cho ba phần tử đầu tiên. Ở đây bạn chỉ có thể chọn từ sự kiện đã ghi nhận. Để dùng một đường dẫn mà sự kiện không chứa, hãy nhập nó vào trường tương ứng trong Edit, nơi mọi đường dẫn là một trường văn bản.Resource ở đây chỉ là tên hiển thị (màn hình Edit gọi nó là Resource Name Path). Pulse nhóm sự kiện bằng Resource ID Path, mà bạn đặt ở bước tiếp theo.Nếu một sự kiện sau này thiếu một trường đã ánh xạ, Resolve dùng giá trị dự phòng: tiêu đề dùng key title cấp cao nhất hoặc Webhook signal, mức độ nghiêm trọng dùng key severity hoặc priority cấp cao nhất rồi đến Medium, dịch vụ dùng unknown, và timestamp dùng thời điểm nhận.
5

Hoàn tất trong Edit

Mở menu … của nguồn trong Signals to Resolve và chọn Edit. Đặt ba trường sau, vốn không có trong hộp thoại thiết lập:
  • Resource ID Path: một định danh ổn định, chẳng hạn host ID hoặc check ID. Pulse dùng nó để nhóm các lần lặp lại của cùng một lỗi, kể cả khi tiêu đề khác nhau. Nếu không có, sự kiện chỉ được nhóm theo tiêu đề hoặc dịch vụ chung. Xem Cách signal gia nhập một cluster.
  • Severity Mapping: một hàng cho mỗi giá trị mức độ nghiêm trọng mà hệ thống của bạn gửi không phải critical, high, medium, low hoặc info. Nếu không có, các sự kiện đó đến dưới dạng Medium.
  • Rate limit (requests per hour): tăng từ 1.000 nếu hệ thống của bạn có thể gửi nhiều hơn trong một giờ.
Đây cũng là nơi bạn tắt Auto-investigate, hoặc đặt Only from a minimum severity.
Trạng thái thành công: nguồn xuất hiện trong Signals to Resolve trên thẻ Custom source. Sự kiện tiếp theo đến Pulse với tiêu đề và mức độ nghiêm trọng bạn đã ánh xạ, và các lần lặp lại của cùng một lỗi gia nhập một cluster.

Sửa một nguồn

Mở Resolve → Integrations → Custom source, tìm nguồn trong Signals to Resolve, và chọn Edit từ menu … của nó. Màn hình sửa có mọi trường ánh xạ (kể cả Resource ID Path và Timestamp Path), Severity Mapping, Auto-investigate với Only from a minimum severity, và Rate limit (requests per hour). Severity Mapping khớp giá trị không phân biệt hoa thường. Ví dụ:

Gửi sự kiện

Nguồn tùy chỉnh mới yêu cầu Authorization: Bearer <secret>, với Secret Key sau Bearer. Nguồn này không chấp nhận x-api-key cho đến khi bạn đổi phương thức (xem Tùy chọn xác thực). Đây là một ví dụ đầy đủ:
Khi ánh xạ với payload này, các trường trông như sau: Với ánh xạ từ bảng trên, sự kiện này đến Pulse dưới dạng một signal có tiêu đề Checkout latency above 2s, mức độ nghiêm trọng Critical, dịch vụ checkout-api, tài nguyên web-03.

Tùy chọn xác thực

Đổi phương thức trong màn hình sửa của nguồn, tại Auth Method. Thay đổi phương thức sẽ làm các bên gửi hiện tại lỗi ngay lập tức.

Phản hồi

Viết logic thử lại của bên gửi dựa trên các phản hồi sau: Mỗi nguồn mặc định cho phép 1.000 request mỗi giờ. Thay đổi trong màn hình sửa tại Rate limit (requests per hour): tối đa 10.000, hoặc 0 để không giới hạn. 429 chỉ trả về khi vượt 10 lần giới hạn: với mặc định 1.000, sau 10.000 request trong cùng một giờ.
Các sự kiện vượt giới hạn mỗi giờ vẫn nhận 2xx, rồi bị bỏ trước khi đến Pulse, bất kể mức độ nghiêm trọng. Bên gửi không thấy lỗi, và không màn hình Resolve nào liệt kê các sự kiện bị bỏ. Hãy tăng giới hạn trước một đợt gửi dồn dập đã lên kế hoạch.Để kiểm tra sự kiện bị bỏ sau một đợt gửi dồn dập, đặt cửa sổ thời gian của Resolve → Pulse thành Last 1 hour và đọc số raw events trong header. So sánh với số lượng mà bên gửi báo đã gửi trong cùng giờ. Raw events đếm mọi nguồn trong workspace, nên một con số thấp hơn nghĩa là sự kiện đã bị bỏ.

Quy tắc cho payload và đường dẫn

Xác minh toàn bộ luồng

Phản hồi HTTP thành công chỉ chứng minh sự kiện đã được gửi đến. Mở Resolve → Pulse: signal sẽ xuất hiện trong vài giây. Xác nhận tiêu đề và mức độ nghiêm trọng của nó. Nếu Auto-investigate đang bật, mức độ nghiêm trọng vượt ngưỡng tối thiểu, và bước phân loại mở một sự cố, sự cố đó hiển thị AI is handling trên Resolve → Investigation. Xem Điều gì khởi động một cuộc điều tra. Sự kiện test được xử lý như sự kiện thực, nên khi Auto-investigate bật, sự kiện đó có thể khởi động một cuộc điều tra thực. Để chỉ kiểm tra việc gửi, hãy tắt Auto-investigate trong màn hình sửa trước, và bật lại sau đó. Tránh tạm dừng On duty cho việc này: thao tác đó ảnh hưởng đến mọi nguồn trong workspace.

Xoay vòng hoặc thay thế thông tin xác thực

Regenerate credentials (menu … của nguồn trong Signals to Resolve) thay thế cả Webhook URL và Secret Key. Cặp cũ ngừng hoạt động ngay lập tức, không có thời gian chồng lấn, nên các bên gửi sẽ thất bại cho đến khi bạn cập nhật chúng. Mỗi lần tạo lại được ghi trong Audit Logs. Để xoay vòng mà không bị gián đoạn:
  1. Tạo một nguồn tùy chỉnh thứ hai và ánh xạ nó từ một sự kiện thực, như trong Tạo nguồn.
  2. Trong màn hình sửa của nguồn mới, sao chép những gì hộp thoại thiết lập không mang theo: Resource ID Path, Timestamp Path, Severity Mapping, Rate limit (requests per hour), Auto-investigate và Only from a minimum severity, và Auth Method nếu bạn đã thay đổi.
  3. Trỏ từng bên gửi đến URL và secret mới.
  4. Khi sự kiện của nguồn cũ ngừng đến Pulse, hãy xóa nguồn cũ.
Nếu gián đoạn ngắn không sao, hãy tạo lại và cập nhật mọi bên gửi ngay sau đó.

Bảo mật và dữ liệu

Để gửi một sự kiện có chữ ký, đặt Auth Method thành HMAC Signature trong màn hình sửa và lưu. Sau đó đặt signing secret (Provider signing secret của bạn, hoặc secret từ Regenerate credentials) vào SECRET và ký đúng các byte bạn gửi. Ví dụ dùng tên header mặc định:

Khắc phục sự cố

Kiểm tra hệ thống của bạn gửi đến đúng Webhook URL và gửi Authorization: Bearer <secret>. Nhấn Check again sau khi gửi lại.
Body không phải là JSON object có giá trị. Gửi một object như {"title": "..."}, không phải mảng hay body trống, rồi nhấn Check again.
Các sự kiện đến trước khi bạn lưu ánh xạ vẫn trở thành signal. Resolve dùng key title cấp cao nhất nếu có, nếu không thì dùng giá trị dự phòng Webhook signal. Lưu một ánh xạ để khắc phục cho các sự kiện mới.
Bộ chọn hiển thị sự kiện được lưu gần nhất, và body sự kiện được lưu hết hạn sau 90 ngày. Kích hoạt nguồn thêm một lần nữa, rồi ánh xạ.
Hệ thống của bạn gửi giá trị mức độ nghiêm trọng mà Resolve không nhận ra. Thêm hàng vào Severity Mapping trong màn hình sửa, ví dụ p1 → critical. Xem Sửa một nguồn.

Bước tiếp theo

Tìm hiểu Pulse

Xem cách signal được lọc, nhóm và chuyển thành sự cố.

Dùng preset thay thế

Kết nối Datadog, Grafana, PagerDuty và nhiều công cụ khác với ánh xạ được điền sẵn.