16 Ping website
ping.R
: arquivo para verificar se o site está no ar.*/1 * * * * Rscript /home/bibr/ping.R
: crontab para executar esse script a cada minuto.para executar cron dentro do R utilizar o pacote
cronR
https://github.com/bnosac/cronR.analysis.R
: arquivo para ler o csv e fazer um gráfico de quanto tempo o site fica fora do ar a cada dia.
16.1 Ping
16.2 Análise
code/ping/analysis.R
library(tidyverse)
read.csv('RES_ping.csv') |>
tibble::as_tibble() |>
dplyr::slice(1:80000) ->
pings
pings$periodo <- as.Date(pings$periodo)
pings$status <- NA
pings[pings$online == TRUE, 'status'] <- 'online'
pings[pings$online == FALSE, 'status'] <- 'offline'
pings$online <- NULL
pings |>
dplyr::group_by(periodo) |>
dplyr::count(status) ->
pings2
ggplot(pings2, aes(x = periodo, y = n)) +
geom_col(aes(fill = status), width = .8) +
scale_y_continuous(limits = c(0, 1440), breaks = seq(0, 1440, by = 60)) +
scale_x_date(date_breaks = "2 days") +
xlab("Dia") +
ylab("Número de pings") +
theme(
axis.text.x = element_text(angle = 90, hjust = 1, size = 12),
axis.text.y = element_text(angle = 0, vjust = 0.4, hjust = 1, size = 12),
panel.grid.major.x = element_blank(),
legend.position = "none",
panel.background = element_rect(fill = "white", colour = "grey50")
)
ggsave('pings_res.png')