Catch HTTP errors.
This commit is contained in:
parent
2d2b9ff70f
commit
bf0131c5c0
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>moe.yo3explorer</groupId>
|
<groupId>moe.yo3explorer</groupId>
|
||||||
<artifactId>octonet-exporter</artifactId>
|
<artifactId>octonet-exporter</artifactId>
|
||||||
<version>1.1</version>
|
<version>1.2</version>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>11</maven.compiler.source>
|
<maven.compiler.source>11</maven.compiler.source>
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package moe.yo3explorer.octonet_exporter;
|
package moe.yo3explorer.octonet_exporter;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import io.prometheus.metrics.core.metrics.Counter;
|
||||||
import io.prometheus.metrics.core.metrics.Gauge;
|
import io.prometheus.metrics.core.metrics.Gauge;
|
||||||
import io.prometheus.metrics.exporter.httpserver.HTTPServer;
|
import io.prometheus.metrics.exporter.httpserver.HTTPServer;
|
||||||
import moe.yo3explorer.octonet_exporter.entities.*;
|
import moe.yo3explorer.octonet_exporter.entities.*;
|
||||||
@ -10,6 +11,8 @@ import okhttp3.Request;
|
|||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
Catch errorsCaimport org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -30,6 +33,21 @@ public class Main {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private static String doHttpRequest(@NotNull OkHttpClient client, String url)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.build();
|
||||||
|
Response response = client.newCall(request).execute();
|
||||||
|
return response.body().string();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.error("Error while doing HTTP request to " + url, e);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
Logger logger = LogManager.getLogger(Main.class);
|
Logger logger = LogManager.getLogger(Main.class);
|
||||||
logger.info("Hello! This is octonet_exporter!");
|
logger.info("Hello! This is octonet_exporter!");
|
||||||
@ -63,6 +81,7 @@ public class Main {
|
|||||||
Gauge level = Gauge.builder().name("octonetExporter_level").help("Signal level").labelNames("input").register();
|
Gauge level = Gauge.builder().name("octonetExporter_level").help("Signal level").labelNames("input").register();
|
||||||
Gauge packets = Gauge.builder().name("octonetExporter_packets").help("Packets").labelNames("input").register();
|
Gauge packets = Gauge.builder().name("octonetExporter_packets").help("Packets").labelNames("input").register();
|
||||||
Gauge bytes = Gauge.builder().name("octonetExporter_bytes").help("Bytes").labelNames("input").register();
|
Gauge bytes = Gauge.builder().name("octonetExporter_bytes").help("Bytes").labelNames("input").register();
|
||||||
|
Counter errors = Counter.builder().name("octonetExporter_errors").help("HTTP Requests to the OctopusNET that failed").register();
|
||||||
|
|
||||||
OkHttpClient client = new OkHttpClient.Builder().build();
|
OkHttpClient client = new OkHttpClient.Builder().build();
|
||||||
int state = 1;
|
int state = 1;
|
||||||
@ -73,19 +92,18 @@ public class Main {
|
|||||||
logger.info("Starting scraping loop...");
|
logger.info("Starting scraping loop...");
|
||||||
state++;
|
state++;
|
||||||
}
|
}
|
||||||
Request request = new Request.Builder().url(String.format(fanspeedUrl,octonetIp,System.currentTimeMillis())).build();
|
String string = doHttpRequest(client, String.format(fanspeedUrl,octonetIp,System.currentTimeMillis()));
|
||||||
Call call = client.newCall(request);
|
if (string != null) {
|
||||||
Response execute = call.execute();
|
|
||||||
String string = execute.body().string();
|
|
||||||
FanspeedResponse fanspeedResponse = objectMapper.readValue(string, FanspeedResponse.class);
|
FanspeedResponse fanspeedResponse = objectMapper.readValue(string, FanspeedResponse.class);
|
||||||
fanspeed.set(fanspeedResponse.speed);
|
fanspeed.set(fanspeedResponse.speed);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
errors.inc();
|
||||||
if (!safeSleep())
|
if (!safeSleep())
|
||||||
break;
|
break;
|
||||||
|
|
||||||
request = new Request.Builder().url(String.format(temperaturUrl,octonetIp,System.currentTimeMillis())).build();
|
string = doHttpRequest(client, String.format(temperaturUrl,octonetIp,System.currentTimeMillis()));
|
||||||
call = client.newCall(request);
|
if (string != null) {
|
||||||
execute = call.execute();
|
|
||||||
string = execute.body().string();
|
|
||||||
StringReader stringReader = new StringReader(string);
|
StringReader stringReader = new StringReader(string);
|
||||||
BufferedReader bufferedReader = new BufferedReader(stringReader);
|
BufferedReader bufferedReader = new BufferedReader(stringReader);
|
||||||
String headLine = bufferedReader.readLine();
|
String headLine = bufferedReader.readLine();
|
||||||
@ -93,37 +111,35 @@ public class Main {
|
|||||||
bufferedReader.close();
|
bufferedReader.close();
|
||||||
stringReader.close();
|
stringReader.close();
|
||||||
temperature.set(Double.parseDouble(temperatureString));
|
temperature.set(Double.parseDouble(temperatureString));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
errors.inc();
|
||||||
if (!safeSleep())
|
if (!safeSleep())
|
||||||
break;
|
break;
|
||||||
|
|
||||||
request = new Request.Builder().url(String.format(tunerstatusUrl,octonetIp)).build();
|
string = doHttpRequest(client,String.format(tunerstatusUrl,octonetIp));
|
||||||
call = client.newCall(request);
|
if (string != null) {
|
||||||
execute = call.execute();
|
|
||||||
string = execute.body().string();
|
|
||||||
TunerResponse tunerResponse = objectMapper.readValue(string, TunerResponse.class);
|
TunerResponse tunerResponse = objectMapper.readValue(string, TunerResponse.class);
|
||||||
for (Tuner tuner : tunerResponse.getTunerList())
|
for (Tuner tuner : tunerResponse.getTunerList()) {
|
||||||
{
|
|
||||||
locked.labelValues(tuner.getInput()).set(tuner.isLock() ? 1 : 0);
|
locked.labelValues(tuner.getInput()).set(tuner.isLock() ? 1 : 0);
|
||||||
strength.labelValues(tuner.getInput()).set(tuner.isLock() ? ((double) (tuner.getStrength() + 108750) / 1000.0) : 0.0);
|
strength.labelValues(tuner.getInput()).set(tuner.isLock() ? ((double) (tuner.getStrength() + 108750) / 1000.0) : 0.0);
|
||||||
snr.labelValues(tuner.getInput()).set((double) tuner.getSnr() / 1000.0);
|
snr.labelValues(tuner.getInput()).set((double) tuner.getSnr() / 1000.0);
|
||||||
quality.labelValues(tuner.getInput()).set(tuner.getQuality());
|
quality.labelValues(tuner.getInput()).set(tuner.getQuality());
|
||||||
level.labelValues(tuner.getInput()).set(tuner.getLevel());
|
level.labelValues(tuner.getInput()).set(tuner.getLevel());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
errors.inc();
|
||||||
if (!safeSleep())
|
if (!safeSleep())
|
||||||
break;
|
break;
|
||||||
|
|
||||||
request = new Request.Builder().url(String.format(streamStatusUrl,octonetIp)).build();
|
string = doHttpRequest(client,String.format(streamStatusUrl,octonetIp));
|
||||||
call = client.newCall(request);
|
if (string != null) {
|
||||||
execute = call.execute();
|
|
||||||
string = execute.body().string();
|
|
||||||
StreamStatusResponse streamStatusResponse = objectMapper.readValue(string, StreamStatusResponse.class);
|
StreamStatusResponse streamStatusResponse = objectMapper.readValue(string, StreamStatusResponse.class);
|
||||||
HashSet<String> inputNames = new HashSet<>();
|
HashSet<String> inputNames = new HashSet<>();
|
||||||
for (StreamStatus streamStatus : streamStatusResponse.streamList)
|
for (StreamStatus streamStatus : streamStatusResponse.streamList) {
|
||||||
{
|
if (inputNames.add(Integer.toString(streamStatus.input))) {
|
||||||
if (inputNames.add(Integer.toString(streamStatus.input)))
|
if (streamStatus.status.equalsIgnoreCase("Inactive")) {
|
||||||
{
|
|
||||||
if (streamStatus.status.equalsIgnoreCase("Inactive"))
|
|
||||||
{
|
|
||||||
streamStatus.packets = 0;
|
streamStatus.packets = 0;
|
||||||
streamStatus.bytes = 0;
|
streamStatus.bytes = 0;
|
||||||
}
|
}
|
||||||
@ -131,6 +147,9 @@ public class Main {
|
|||||||
bytes.labelValues(Integer.toString(streamStatus.input)).set(streamStatus.bytes);
|
bytes.labelValues(Integer.toString(streamStatus.input)).set(streamStatus.bytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
errors.inc();
|
||||||
if (!safeSleep())
|
if (!safeSleep())
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -141,7 +160,7 @@ public class Main {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.warn("Scraping loop stopped.");
|
logger.warn("Scraping loop stopped for some reason.");
|
||||||
|
server.stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user