OSHI监控linux,oshi

oshilogo.png

license-MIT-blue.svg

badge.svg

com.github.oshi:oshi-core

oshi.svg

v489i8xoyfspxx7s?svg=true

9332.svg

oshi.svg?logo=lgtm&logoWidth=18

5370178ae91d4f56b43de2f26f7c5e7a

measure?project=com.github.oshi%3Aoshi-parent&metric=bugs

measure?project=com.github.oshi%3Aoshi-parent&metric=vulnerabilities

measure?project=com.github.oshi%3Aoshi-parent&metric=sqale_rating

measure?project=com.github.oshi%3Aoshi-parent&metric=reliability_rating

measure?project=com.github.oshi%3Aoshi-parent&metric=security_rating

quality-score.png?b=master

badge.svg?branch=master

3ba72569ea16b4f798395d39765f18f1.gif

first--timers--only-friendly-blue.svg?style=flat-square

OSHI is a free JNA-based (native) Operating System and Hardware Information library for Java.

It does not require the installation of any additional native libraries and aims to provide a

cross-platform implementation to retrieve system information, such as OS version, processes,

memory and CPU usage, disks and partitions, devices, sensors, etc.

Supported platforms

Windows • Linux • macOS • Unix (AIX, FreeBSD, Solaris)

Essentials

Supported features

Computer System and firmware, baseboard

Operating System and Version/Build

Physical (core) and Logical (hyperthreaded) CPUs, processor groups, NUMA nodes

System and per-processor load, usage tick counters, interrupts, uptime

Process uptime, CPU, memory usage, user/group, command line args, thread details

Physical and virtual memory used/available

Mounted filesystems (type, usable and total space, options, reads and writes)

Disk drives (model, serial, size, reads and writes) and partitions

Network interfaces (IPs, bandwidth in/out), network parameters, TCP/UDP statistics

Battery state (% capacity, time remaining, power usage stats)

USB Devices

Connected displays (with EDID info), graphics and audio cards

Sensors (temperature, fan speeds, voltage) on some hardware

Downloads

Stable Release Version

Current Development Version

Dependencies

Usage

Include OSHI and its dependencies on your classpath. We strongly recommend you add OSHI as a dependency to your project dependency manager such as Maven or Gradle. You can find the appropriate syntax to include OSHI here.

Create a new instance of SystemInfo

Use the getters from SystemInfo to access hardware or operating system components, such as:

SystemInfo si = new SystemInfo();

HardwareAbstractionLayer hal = si.getHardware();

CentralProcessor cpu = hal.getProcessor();

The oshi-demo artifact includes several proof-of-concept examples of using OSHI to obtain information, including a basic Swing GUI.

Note: OSHI uses the latest version of JNA, which may conflict with other dependencies your project (or its parent) includes. If you experience issues with NoClassDefFound errors for JNA artifacts, consider one or more of the following steps to resolve the conflict:

Listing OSHI earlier (or first) in your dependency list

Specifying the most recent version of JNA (both jna and jna-platform artifacts) as a dependency

If you are using a parent (e.g., Spring Boot) that includes JNA as a dependency, override the jna.version property or equivalent

OSHI for enterprise

Available as part of the Tidelift Subscription

The maintainers of OSHI and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.

Security contact information

To report a security vulnerability, please use the Tidelift security contact.

Tidelift will coordinate the fix and disclosure.

Output

OSHI provides output directly via Java methods for each of its interfaces.

By periodically polling dynamic information (e.g., every second), users can calculate and track changes.

You can see more examples and run the SystemInfoTest

and see the full output for your system by cloning the project and building it with Maven:

git clone https://github.com/oshi/oshi.git && cd oshi

./mvnw test-compile -pl oshi-core exec:java \

-Dexec.mainClass="oshi.SystemInfoTest" \

-Dexec.classpathScope="test"

In addition, the oshi-demo project includes an OshiGui class implementing a basic Swing GUI offering suggestions for potential visualizations using OSHI in a UI, monitoring, or alerting application, as shown below:

General information about the operating system and computer system hardware:

OSHW.PNG

By measuring ticks (user, nice, system, idle, iowait, and irq) between time intervals, percent usage can be calculated.

Per-processor information is also provided.

CPU.PNG

Process information including CPU and memory per process is available.

Procs.PNG

Memory and swapfile information is available.

Memory.PNG

Statistics for the system battery are provided:

Power Sources:

Name: InternalBattery-0, Device Name: bq20z451,

RemainingCapacityPercent: 100.0%, Time Remaining: 5:42, Time Remaining Instant: 5:42,

Power Usage Rate: -16045.216mW, Voltage: 12.694V, Amperage: -1264.0mA,

Power OnLine: false, Charging: false, Discharging: true,

Capacity Units: MAH, Current Capacity: 7213, Max Capacity: 7315, Design Capacity: 7336,

Cycle Count: 6, Chemistry: LIon, Manufacture Date: 2019-06-11, Manufacturer: SMP,

SerialNumber: D869243A2U3J65JAB, Temperature: 30.46°C

The EDID for each Display is provided. This can be parsed with various utilities for detailed information. OSHI provides a summary of selected data.

Displays:

Display 0:

Manuf. ID=SAM, Product ID=2ad, Analog, Serial=HA19, ManufDate=3/2008, EDID v1.3

41 x 27 cm (16.1 x 10.6 in)

Preferred Timing: Clock 106MHz, Active Pixels 3840x2880

Range Limits: Field Rate 56-75 Hz vertical, 30-81 Hz horizontal, Max clock: 140 MHz

Monitor Name: SyncMaster

Serial Number: H9FQ345476

Display 1:

Manuf. ID=SAM, Product ID=226, Analog, Serial=HA19, ManufDate=4/2007, EDID v1.3

41 x 26 cm (16.1 x 10.2 in)

Preferred Timing: Clock 106MHz, Active Pixels 3840x2880

Range Limits: Field Rate 56-75 Hz vertical, 30-81 Hz horizontal, Max clock: 140 MHz

Monitor Name: SyncMaster

Serial Number: HMCP431880

Disks and usage (reads, writes, transfer times) are shown, and partitions can be mapped to filesystems.

Disks:

disk0: (model: SanDisk Ultra II 960GB - S/N: 161008800550) size: 960.2 GB, reads: 1053132 (23.0 GiB), writes: 243792 (11.1 GiB), xfer: 73424854 ms

|-- disk0s1: EFI (EFI System Partition) Maj:Min=1:1, size: 209.7 MB

|-- disk0s2: Macintosh HD (Macintosh SSD) Maj:Min=1:2, size: 959.3 GB @ /

disk1: (model: Disk Image - S/N: ) size: 960.0 GB, reads: 3678 (60.0 MiB), writes: 281 (8.6 MiB), xfer: 213627 ms

|-- disk1s1: EFI (EFI System Partition) Maj:Min=1:4, size: 209.7 MB

|-- disk1s2: Dropbox (disk image) Maj:Min=1:5, size: 959.7 GB @ /Volumes/Dropbox

Sensor readings are available for some hardware (see notes in the API).

Sensors:

CPU Temperature: 69.8°C

Fan Speeds:[4685, 4687]

CPU Voltage: 3.9V

Attached USB devices can be listed:

USB Devices:

AppleUSBEHCI

|-- Root Hub Simulation Simulation (Apple Inc.)

|-- IOUSBHostDevice

|-- IR Receiver (Apple Computer, Inc.)

|-- USB Receiver (Logitech)

AppleUSBEHCI

|-- Root Hub Simulation Simulation (Apple Inc.)

|-- FaceTime HD Camera (Built-in) (Apple Inc.) [s/n: DJHB1V077FDH5HL0]

|-- IOUSBHostDevice

|-- Apple Internal Keyboard / Trackpad (Apple Inc.)

|-- BRCM2070 Hub (Apple Inc.)

|-- Bluetooth USB Host Controller (Apple Inc.)

AppleUSBEHCI

|-- Root Hub Simulation Simulation (Apple Inc.)

|-- IOUSBHostDevice

|-- Apple Thunderbolt Display (Apple Inc.) [s/n: 162C0C25]

|-- Display Audio (Apple Inc.) [s/n: 162C0C25]

|-- FaceTime HD Camera (Display) (Apple Inc.) [s/n: CCGCAN000TDJ7DFX]

|-- USB2.0 Hub

|-- ANT USBStick2 (Dynastream Innovations) [s/n: 051]

|-- Fitbit Base Station (Fitbit Inc.)

Where are we? How can I help?

OSHI originated

as a platform-independent library that did not require additional software and had a license compatible with

both open source and commercial products. We have developed a strong core of features on major Operating Systems,

but we would love for you to help by:

Testing! Our CI testing is limited to a few platforms. Download and test the program on various operating systems/versions and hardware and help identify gaps that our limited development and testing may have missed.

Contributing code. See something that's not working right or could work better? Help us fix it! New contributors are welcome.

Documenting implementation. Our Wiki is sparse and the oshi-demo artifact is a place to host proof-of-concept ideas. Want to help new users follow in your footsteps?

Suggesting new features. Do you need OSHI to do something it doesn't currently do? Let us know.

Acknowledgements

Many thanks to the following companies for providing free support of Open Source projects including OSHI:

SonarCloud for a range of code quality tools

Travis CI for continuous integration testing

The jProfile Java Profiler used to eliminate cpu bottlenecks

Projects using OSHI

License

This project is licensed under the MIT License.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值