<!--startmeta
custom_edit_url: "https://github.com/netdata/netdata/edit/master/src/go/plugin/go.d/collector/snmp/npm-catalog/integrations/generic_ups_ups-mib.md"
meta_yaml: "https://github.com/netdata/netdata/edit/master/src/go/plugin/go.d/collector/snmp/npm-catalog/metadata.yaml"
sidebar_label: "Generic UPS (UPS-MIB)"
learn_status: "Published"
learn_rel_path: "Network Performance Monitoring/Device Metrics/Integrations"
keywords: ['generic', 'ups', '(ups-mib)', 'snmp', 'ups', 'npm']
message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE NPM CATALOG metadata.yaml FILE"
endmeta-->

<!-- markdownlint-disable-file -->

# Generic UPS (UPS-MIB)


<img src="https://netdata.cloud/img/SNMP.png" width="150"/>


Plugin: go.d.plugin
Module: snmp

<img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />

## Overview

Monitor Generic UPS (UPS-MIB) (ups) with Netdata over SNMP. Netdata recognizes the device automatically by its `sysObjectID` (recognized across 1 device identifiers) and collects the metrics this profile declares — on top of the generic SNMP baseline — with no manual OID configuration.

Netdata's SNMP collector matches the device to the **generic-ups.yaml** profile via `sysObjectID`/`sysDescr`, then polls the OIDs it declares.

This integration is supported on all platforms.

This integration supports multiple instances configured side-by-side.


### Default Behavior

#### Auto-Detection

Auto-detected as Generic UPS (UPS-MIB) via sysObjectID/sysDescr.

#### Limits

The default configuration for this integration does not impose any limits.

#### Performance Impact

The default configuration for this integration is not expected to impose a significant performance impact on the system.

## Setup


You can configure the **snmp** collector in two ways:

| Method                | Best for                                                                                 | How to                                                                                                                                 |
|-----------------------|------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|
| [**UI**](#via-ui)     | Fast setup without editing files                                                         | Go to **Nodes → Configure this node → Collectors → Jobs**, search for **snmp**, then click **+** to add a job. |
| [**File**](#via-file) | If you prefer configuring via file, or need to automate deployments (e.g., with Ansible) | Edit `go.d/snmp.conf` and add a job.                                                                        |

:::important

UI configuration requires paid Netdata Cloud plan.

:::


### Prerequisites

#### SNMP access

SNMP must be enabled on the device and reachable from the Netdata Agent acting as the site's SNMP hub.


### Configuration

#### Options

Configure the SNMP collector with the device hostname and SNMP credentials. See the SNMP collector reference for all options.


#### via UI

Configure the **snmp** collector from the Netdata web interface:

1. Go to **Nodes**.
2. Select the node **where you want the snmp data-collection job to run** and click the :gear: (**Configure this node**). That node will run the data collection.
3. The **Collectors → Jobs** view opens by default.
4. In the Search box, type _snmp_ (or scroll the list) to locate the **snmp** collector.
5. Click the **+** next to the **snmp** collector to add a new job.
6. Fill in the job fields, then click **Test** to verify the configuration and **Submit** to save.
    - **Test** runs the job with the provided settings and shows whether data can be collected.
    - If it fails, an error message appears with details (for example, connection refused, timeout, or command execution errors), so you can adjust and retest.


#### via File

The configuration file name for this integration is `go.d/snmp.conf`.

The file format is YAML. Generally, the structure is:

```yaml
update_every: 1
autodetection_retry: 0
jobs:
  - name: some_name1
  - name: some_name2
```
You can edit the configuration file using the [`edit-config`](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#edit-configuration-files) script from the
Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/netdata-agent/configuration/README.md#locate-your-config-directory).

```bash
cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/snmp.conf
```

##### Examples
There are no configuration examples.



## Alerts

There are no alerts configured by default for this integration.



## Metrics

On top of the **generic SNMP baseline** (the *Generic SNMP Device* integration — interfaces, system, IP/TCP/UDP, host resources), this Generic UPS (UPS-MIB) profile adds the metrics below. Each is collected **only where the device exposes the matching OID** — inclusion means the profile requests it; availability depends on the device model and software.

**30 metrics** in 8 groups; each row is a chart context usable in alerts.

| Group | Metrics |
|---|---|
| Hardware / Battery | 4 |
| PowerFlow / Bypass | 5 |
| PowerFlow / Input | 6 |
| PowerFlow / Output | 7 |
| System / Alarm | 2 |
| System / Battery | 3 |
| System / Test | 2 |
| System / Uptime | 1 |

### Hardware / Battery

| Metric (chart context) | Unit | Scope | Description |
|---|---|---|---|
| `snmp.device_prof_upsBatteryCurrent` | `A` | device | The present battery current |
| `snmp.device_prof_upsBatteryStatus` | `{status}` | device | The indication of the capacity remaining in the UPS system's batteries |
| `snmp.device_prof_upsBatteryTemperature` | `Cel` | device | The ambient temperature at or near the UPS Battery casing |
| `snmp.device_prof_upsBatteryVoltage` | `V` | device | The magnitude of the present battery voltage |

### PowerFlow / Bypass

| Metric (chart context) | Unit | Scope | Description |
|---|---|---|---|
| `snmp.device_prof_upsBypassCurrent` | `A` | per ups_bypass_line_index | The present bypass current |
| `snmp.device_prof_upsBypassFrequency` | `Hz` | device | The present bypass frequency |
| `snmp.device_prof_upsBypassNumLines` | `{line}` | device | The number of bypass lines utilized in this device. This entry indicates the number of rows in the bypass table |
| `snmp.device_prof_upsBypassPower` | `W` | per ups_bypass_line_index | The present true power conveyed by the bypass |
| `snmp.device_prof_upsBypassVoltage` | `V` | per ups_bypass_line_index | The present bypass voltage |

### PowerFlow / Input

| Metric (chart context) | Unit | Scope | Description |
|---|---|---|---|
| `snmp.device_prof_upsInputCurrent` | `A` | per ups_input_line_index | The magnitude of the present input current |
| `snmp.device_prof_upsInputFrequency` | `Hz` | per ups_input_line_index | The present input frequency |
| `snmp.device_prof_upsInputLineBads` | `{transition}` | device | A count of the number of times the input entered an out-of-tolerance condition as defined by the manufacturer. This count is incre… |
| `snmp.device_prof_upsInputNumLines` | `{line}` | device | The number of input lines utilized in this device. This variable indicates the number of rows in the input table |
| `snmp.device_prof_upsInputTruePower` | `W` | per ups_input_line_index | The magnitude of the present input true power |
| `snmp.device_prof_upsInputVoltage` | `V` | per ups_input_line_index | The magnitude of the present input voltage |

### PowerFlow / Output

| Metric (chart context) | Unit | Scope | Description |
|---|---|---|---|
| `snmp.device_prof_upsOutputCurrent` | `A` | per ups_output_line_index | The present output current |
| `snmp.device_prof_upsOutputFrequency` | `Hz` | device | The present output frequency |
| `snmp.device_prof_upsOutputNumLines` | `{line}` | device | The number of output lines utilized in this device. This variable indicates the number of rows in the output table |
| `snmp.device_prof_upsOutputPercentLoad` | `%` | per ups_output_line_index | The percentage of the UPS power capacity presently being used on this output line |
| `snmp.device_prof_upsOutputPower` | `W` | per ups_output_line_index | The present output true power |
| `snmp.device_prof_upsOutputSource` | `{status}` | device | The present source of output power |
| `snmp.device_prof_upsOutputVoltage` | `V` | per ups_output_line_index | The present output voltage |

### System / Alarm

| Metric (chart context) | Unit | Scope | Description |
|---|---|---|---|
| `snmp.device_prof_upsAlarmTime` | `s` | per ups_alarm_descr | The value of sysUpTime when the alarm condition was detected. If the alarm condition was detected at the time of agent startup and… |
| `snmp.device_prof_upsAlarmsPresent` | `{alarm}` | device | The present number of active alarm conditions |

### System / Battery

| Metric (chart context) | Unit | Scope | Description |
|---|---|---|---|
| `snmp.device_prof_upsEstimatedChargeRemaining` | `%` | device | An estimate of the battery charge remaining expressed as a percent of full charge |
| `snmp.device_prof_upsEstimatedMinutesRemaining` | `min` | device | An estimate of the time to battery charge depletion under the present load conditions if the utility power is off and remains off,… |
| `snmp.device_prof_upsSecondsOnBattery` | `s` | device | If the unit is on battery power, the elapsed time since the UPS last switched to battery power, or the time since the network mana… |

### System / Test

| Metric (chart context) | Unit | Scope | Description |
|---|---|---|---|
| `snmp.device_prof_upsTestResultsSummary` | `{status}` | device | The results of the current or last UPS diagnostics test performed |
| `snmp.device_prof_upsTestStartTime` | `s` | device | The value of sysUpTime at the time the test in progress was initiated, or, if no test is in progress, the time the previous test w… |

### System / Uptime

| Metric (chart context) | Unit | Scope | Description |
|---|---|---|---|
| `snmp.device_prof_systemUptime` | `s` | device | Time since the system was last rebooted or powered on. |
