การเข้าถึงเมตริกประสิทธิภาพของเซิร์ฟเวอร์ Outline
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
Outline ให้ข้อมูลเมตริกประสิทธิภาพโดยละเอียดผ่าน Prometheus ซึ่งช่วยให้คุณทำความเข้าใจการใช้งานและประสิทธิภาพของเซิร์ฟเวอร์ได้อย่างลึกซึ่งยิ่งขึ้น โดยคู่มือนี้จะแนะนำขั้นตอนการดึงข้อมูลและการดูเมตริกดังกล่าว
หมายเหตุสำคัญ: คุณควรมีความรู้พื้นฐานเกี่ยวกับ Prometheus และ PromQL มาก่อนใช้คู่มือนี้ ในกรณีที่คุณยังไม่คุ้นเคยกับ Prometheus โปรดดูเอกสารประกอบและบทแนะนำต่างๆ ก่อนจะมาเจาะลึกเรื่องเมตริกของ Outline
สิ่งที่ต้องดำเนินการก่อน
เปิดใช้ Prometheus ในเซิร์ฟเวอร์ Outline: ตรวจสอบว่าเซิร์ฟเวอร์ Outline ของคุณได้เปิดใช้เมตริกของ Prometheus แล้ว (ส่วนใหญ่จะเป็นการกำหนดค่าเริ่มต้นไว้แล้ว)
การเข้าถึง SSH ในเซิร์ฟเวอร์ของคุณ: คุณต้องมีสิทธิ์เข้าถึง SSH เพื่อส่งต่อพอร์ต Prometheus
วิธีการ
ส่งต่อพอร์ต Prometheus
เชื่อมต่อกับเซิร์ฟเวอร์ของคุณโดยใช้ SSH และส่งต่อพอร์ต 9090
ssh root@your_server_ip -L 9090:localhost:9090
เข้าถึงอินเทอร์เฟซเว็บ Prometheus
เปิดเว็บเบราว์เซอร์และไปที่ http://localhost:9090/graph
เมตริกการค้นหาของ Prometheus
ใช้การค้นหา PromQL เพื่อดึงข้อมูลเมตริกที่คุณสนใจ
ตัวอย่างการค้นหา PromQL
การใช้งาน
ไบต์ (จำแนกตามคีย์การเข้าถึง โปรโตคอล และทิศทาง)
increase(shadowsocks_data_bytes[1d])
ไบต์ (รวมโดยคีย์การเข้าถึง)
sum(increase(shadowsocks_data_bytes[1d])) by (access_key)
ไบต์ (สำหรับการคำนวณขีดจำกัดของข้อมูล)
sum(increase(shadowsocks_data_bytes{dir=~"c<p|p>t"}[30d])) by (access_key)
ไบต์ (จำแนกตามตำแหน่ง โปรโตคอล และทิศทาง)
increase(shadowsocks_data_bytes_per_location[1d])
คีย์การเข้าถึงที่ใช้งานอยู่
sum(max(max_over_time(shadowsocks_data_bytes{access_key!=""} [1h])) by (access_key) > bool 0)
การเชื่อมต่อ TCP
การเชื่อมต่อ TCP (จำแนกตามคีย์การเข้าถึง ตำแหน่ง และสถานะ)
increase(shadowsocks_tcp_connections_closed[1d])
การเชื่อมต่อ TCP (จำแนกตามตำแหน่ง)
increase(shadowsocks_tcp_connections_opened[1d])
UDP
แพ็กเก็ต UDP (จำแนกตามตำแหน่งและสถานะ)
increase(shadowsocks_udp_packets_from_client_per_location[1d])
การเชื่อมโยง UDP (ไม่มีรายละเอียด)
increase(shadowsocks_udp_nat_entries_added[1d])
การใช้ CPU (จำแนกตามกระบวนการ)
rate(process_cpu_seconds_total[10m])
หน่วยความจำ (จำแนกตามกระบวนการ)
process_virtual_memory_bytes
Prometheus
prometheus_build_info
outline-ss-server
shadowsocks_build_info
Node.js
nodejs_version_info
โปรดดูรายการเมตริกที่มีทั้งหมดในซอร์สโค้ด outline-ss-server
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-25 UTC
[null,null,["อัปเดตล่าสุด 2025-07-25 UTC"],[[["\u003cp\u003eOutline provides detailed performance metrics via Prometheus, offering insights into server usage and health.\u003c/p\u003e\n"],["\u003cp\u003eAccessing these metrics requires an Outline server with Prometheus enabled and SSH access to forward port 9090.\u003c/p\u003e\n"],["\u003cp\u003eYou can use PromQL queries to retrieve specific metrics, such as data bytes, active access keys, TCP connections, and UDP packets.\u003c/p\u003e\n"],["\u003cp\u003ePerformance metrics are also available for CPU usage and memory by process.\u003c/p\u003e\n"],["\u003cp\u003eBuild information for Prometheus, outline-ss-server, and Node.js are available as well, providing software versioning.\u003c/p\u003e\n"]]],["Performance metrics are accessed via Prometheus, requiring an Outline server with Prometheus enabled and SSH access. Port 9090 is forwarded via SSH to view metrics in a web browser at `http://localhost:9090/graph`. PromQL queries retrieve metrics like data bytes, active access keys, TCP connections, UDP packets/associations, and CPU/memory usage. Build information for Prometheus, `outline-ss-server`, and Node.js are also available. The source code provides a complete metrics list.\n"],null,["# Accessing Outline Server Performance Metrics\n\nOutline provides detailed performance metrics through\n[Prometheus](https://prometheus.io/), allowing you to gain deeper insights into\nyour server's usage and health. This guide will walk you through the process of\nretrieving and viewing these metrics.\n\n**Important Note:** This guide assumes you have a basic understanding of\nPrometheus and PromQL. If you're new to Prometheus, consider exploring its\ndocumentation and tutorials before diving into Outline's metrics.\n\nPrerequisites\n-------------\n\n- **Outline server with Prometheus enabled**: Ensure that your Outline server\n has Prometheus metrics enabled. (This is usually the default configuration).\n\n- **SSH access to your server**: You'll need SSH access to forward the\n Prometheus port.\n\nInstructions\n------------\n\n1. **Forward Prometheus Port**\n\n Connect to your server using SSH and forward port 9090: \n\n ssh root@your_server_ip -L 9090:localhost:9090\n\n2. **Access Prometheus Web Interface**\n\n Open your web browser and navigate to: \u003chttp://localhost:9090/graph\u003e\n Query Prometheus Metrics\n3. **Use PromQL queries to retrieve the specific metrics you're interested in.**\n\n### Example PromQL Queries\n\n#### Usage\n\n- **Data Bytes (by access key, protocol, and direction):**\n\n `increase(shadowsocks_data_bytes[1d])`\n- **Data Bytes (aggregated by access key):**\n\n `sum(increase(shadowsocks_data_bytes[1d])) by (access_key)`\n- **Data Bytes (for data limits calculation):**\n\n `sum(increase(shadowsocks_data_bytes{dir=~\"c\u003cp|p\u003et\"}[30d])) by (access_key)`\n- **Data Bytes (by location, protocol, and direction):**\n\n `increase(shadowsocks_data_bytes_per_location[1d])`\n\n#### Active Access Keys\n\n`sum(max(max_over_time(shadowsocks_data_bytes{access_key!=\"\"} [1h])) by (access_key) \u003e bool 0)`\n\n#### TCP Connections\n\n- **TCP Connections (by access key, location, and status):**\n\n `increase(shadowsocks_tcp_connections_closed[1d])`\n- **TCP Connections (by location):**\n\n `increase(shadowsocks_tcp_connections_opened[1d])`\n\n#### UDP\n\n- **UDP Packets (by location and status):**\n\n `increase(shadowsocks_udp_packets_from_client_per_location[1d])`\n- **UDP Associations (no breakdown):**\n\n `increase(shadowsocks_udp_nat_entries_added[1d])`\n\n#### Performance\n\n- **CPU Usage (by process):**\n\n `rate(process_cpu_seconds_total[10m])`\n- **Memory (by process):**\n\n `process_virtual_memory_bytes`\n\n#### Build Information\n\n- **Prometheus:**\n\n `prometheus_build_info`\n- **outline-ss-server:**\n\n `shadowsocks_build_info`\n- **Node.js:**\n\n `nodejs_version_info`\n\nThe complete list of available metrics can be found in the `outline-ss-server`\n[source code](https://github.com/Jigsaw-Code/outline-ss-server/blob/master/cmd/outline-ss-server/metrics.go)."]]