Advertisement
Guest User

Untitled

a guest
May 16th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.09 KB | None | 0 0
  1. library(readr)
  2. library(lubridate)
  3.  
  4. importData_txt <- read_table2("vpnsessions.txt",
  5. col_names = FALSE, col_types = cols(X3 = col_date(format = "%Y-%m-%d"),
  6. X4 = col_time(format = "%H:%M"),
  7. X5 = col_time(format = "%H:%M")))
  8. View(importData_txt)
  9.  
  10. cleanData <- importData_txt[ , c(1:5,7)]
  11. View(cleanData)
  12.  
  13. # NOMEAR COLUNAS
  14. colnames(cleanData) <- c("Servidor",
  15. "ProtocoloVPN",
  16. "DataInicioSessao",
  17. "HoraInicioSessao",
  18. "HoraFimSessao",
  19. "acesso.d")
  20.  
  21. View(cleanData)
  22. # ORDENAR POR DATA INICIO SESSAO
  23.  
  24.  
  25.  
  26. # Funções
  27. # (1)
  28. concatenarDateHour <- function(dataAnoMesDia,horaMinutos){
  29. ## chamada => concatenarDateHour(datainicial$DataInicioSessao,horainicial)
  30. horaDoDia <- seconds_to_period(horaMinutos)
  31. dataConc = paste(dataAnoMesDia,
  32. sprintf('%02d:%02d:%02d', horaDoDia@hour, minute(horaDoDia), second(horaDoDia)),
  33. sep="T")
  34. dateFinal = as.POSIXlt(dataConc,format="%Y-%m-%dT%H:%M:%S")
  35. return(dateFinal)
  36. }
  37. ##Teste Funcional
  38. #datainicial= cleanData[1,3]
  39. #print(datainicial)
  40. #horainicial = cleanData[1,5]
  41. #print(horainicial)
  42. #a=concatenarDateHour(datainicial$DataInicioSessao,horainicial)
  43. #print(a)
  44. #------------------
  45. # adicionar coluna com data e hora de inicio
  46. #"2018-02-22 16:24:00 GMT"
  47. novaColuna<-.POSIXct(integer(nrow(cleanData)))
  48.  
  49. for(i in 1:nrow(cleanData)){
  50. datainicial= cleanData[i,3]
  51. horainicial = cleanData[i,4]
  52. novaColuna[i] = concatenarDateHour(datainicial$DataInicioSessao,horainicial)
  53. }
  54.  
  55. cleanData["data&horaInicio"]<-novaColuna
  56. cleanData_1<-cleanData[order(cleanData$`data&horaInicio`),]
  57. View(cleanData_1)
  58.  
  59. # definir tabela
  60. # Servidor||ProtocoloVPN||acesso.i||acesso.f||acesso.d
  61.  
  62. cleanData_1["acesso.i"]<-integer(nrow(cleanData_1))
  63. cleanData_1["acesso.f"]<-integer(nrow(cleanData_1))
  64. horaZero = cleanData_1$`data&horaInicio`[1]
  65. for(i in 1:nrow(cleanData_1)){
  66. tempoDecorrido = difftime(cleanData_1$`data&horaInicio`[i],horaZero,units="mins")
  67. cleanData_1$acesso.i[i] = tempoDecorrido
  68. cleanData_1$acesso.f[i] = cleanData_1$acesso.i[i]+cleanData_1$acesso.d[i]
  69. }
  70.  
  71. finalData <- cleanData_1[ , c(1:2,8,9,6)] # Servidor||ProtocoloVPN||acesso.i||acesso.f||acesso.d
  72. View (finalData)
  73. vpnsessions<-finalData
  74. ##########
  75. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  76. # F1 - Criar sub Listas...
  77. #...por servidor
  78. geraListaServidor <- function(finalData,servidor){
  79. lista = finalData [ which(finalData$Servidor==servidor),]
  80. return(lista)
  81. }
  82. #... por protocolo
  83. geraListaProtocolo <- function(finalData,protocolo){
  84. lista = finalData [ which(finalData$ProtocoloVPN==protocolo),]
  85. return(lista)
  86. }
  87.  
  88. # F2 - Falhas
  89. eliminarFalhas <- function(finalData){
  90. lista = finalData[which(finalData$acesso.d>1),]
  91. return(lista)
  92. }
  93.  
  94. identificarFalhas <- function(finalData){
  95. lista = finalData[which(finalData$acesso.d<=1),]
  96. return(lista)
  97. }
  98. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  99. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  100.  
  101. ##########
  102. # LISTAS # (2)
  103. ##########_______________________________________________________
  104.  
  105. # LISTAS de servidores --------------------------------------
  106. SERV_vsrv8 <- geraListaServidor(vpnsessions,"vsrv8")
  107. SERV_vsrv10 <- geraListaServidor(vpnsessions,"vsrv10")
  108. SERV_vsrv11 <- geraListaServidor(vpnsessions,"vsrv11")
  109. SERV_vsrv16 <- geraListaServidor(vpnsessions,"vsrv16")
  110. SERV_vsrv17 <- geraListaServidor(vpnsessions,"vsrv17")
  111.  
  112. # LISTAS de protocolos -----------------------------------------
  113. PROT_PPTP <- geraListaProtocolo(vpnsessions,"PPTP")
  114. PROT_SSTP <- geraListaProtocolo(vpnsessions,"SSTP")
  115. PROT_SOFTETHER <- geraListaProtocolo(vpnsessions,"SOFTETHER")
  116. PROT_OPENVPN_L2 <- geraListaProtocolo(vpnsessions,"OPENVPN_L2")
  117. PROT_OPENVPN_L3 <- geraListaProtocolo(vpnsessions,"OPENVPN_L3")
  118.  
  119. # LISTAS de protocolos por servidor ------------------------------
  120. # Servidor vsrv8
  121. vsrv8_PPTP <- geraListaProtocolo(SERV_vsrv8,"PPTP")
  122. vsrv8_SSTP <- geraListaProtocolo(SERV_vsrv8,"SSTP")
  123. vsrv8_SOFTETHER <- geraListaProtocolo(SERV_vsrv8,"SOFTETHER")
  124. vsrv8_OPENVPN_L2 <- geraListaProtocolo(SERV_vsrv8,"OPENVPN_L2")
  125. vsrv8_OPENVPN_L3 <- geraListaProtocolo(SERV_vsrv8,"OPENVPN_L3")
  126. # Servidor vsrv10
  127. vsrv10_PPTP <- geraListaProtocolo(SERV_vsrv10,"PPTP")
  128. vsrv10_SSTP <- geraListaProtocolo(SERV_vsrv10,"SSTP")
  129. vsrv10_SOFTETHER <- geraListaProtocolo(SERV_vsrv10,"SOFTETHER")
  130. vsrv10_OPENVPN_L2 <- geraListaProtocolo(SERV_vsrv10,"OPENVPN_L2")
  131. vsrv10_OPENVPN_L3 <- geraListaProtocolo(SERV_vsrv10,"OPENVPN_L3")
  132. # Servidor vsrv11
  133. vsrv11_PPTP <- geraListaProtocolo(SERV_vsrv11,"PPTP")
  134. vsrv11_SSTP <- geraListaProtocolo(SERV_vsrv11,"SSTP")
  135. vsrv11_SOFTETHER <- geraListaProtocolo(SERV_vsrv11,"SOFTETHER")
  136. vsrv11_OPENVPN_L2 <- geraListaProtocolo(SERV_vsrv11,"OPENVPN_L2")
  137. vsrv11_OPENVPN_L3 <- geraListaProtocolo(SERV_vsrv11,"OPENVPN_L3")
  138. # Servidor vsrv16
  139. vsrv16_PPTP <- geraListaProtocolo(SERV_vsrv16,"PPTP")
  140. vsrv16_SSTP <- geraListaProtocolo(SERV_vsrv16,"SSTP")
  141. vsrv16_SOFTETHER <- geraListaProtocolo(SERV_vsrv16,"SOFTETHER")
  142. vsrv16_OPENVPN_L2 <- geraListaProtocolo(SERV_vsrv16,"OPENVPN_L2")
  143. vsrv16_OPENVPN_L3 <- geraListaProtocolo(SERV_vsrv16,"OPENVPN_L3")
  144. # Servidor vsrv17
  145. vsrv17_PPTP <- geraListaProtocolo(SERV_vsrv17,"PPTP")
  146. vsrv17_SSTP <- geraListaProtocolo(SERV_vsrv17,"SSTP")
  147. vsrv17_SOFTETHER <- geraListaProtocolo(SERV_vsrv17,"SOFTETHER")
  148. vsrv17_OPENVPN_L2 <- geraListaProtocolo(SERV_vsrv17,"OPENVPN_L2")
  149. vsrv17_OPENVPN_L3 <- geraListaProtocolo(SERV_vsrv17,"OPENVPN_L3")
  150. #---------
  151. #RESOLUÇÃO (3)
  152. #---------
  153. ##########
  154. # PONTO UM
  155. ##########_______________________________________________________
  156.  
  157. ##########
  158. #FUNÇÕES #
  159. ##########
  160. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  161. # F1 - Medidas Localização(min,máx,media, desvio padrão)
  162. imprimirMedidasLocalizacao <- function(sourceData,legenda){
  163.  
  164. maximo <- max(sourceData[,5])
  165. minimo <- min(sourceData[,5])
  166. media <- mean(sourceData[,5])
  167. desvioPadrao=sd(sourceData[,5])
  168.  
  169. cat(" # ")
  170. cat(legenda)
  171. cat(" => ")
  172. cat(" * Mínimo: ",minimo,"min")
  173. cat(" * Máximo: ",maximo,"min")
  174. cat(" * Média: ",media,"min")
  175. cat(" * Desvio Padrão: ",desvioPadrao)
  176. }
  177.  
  178. # F2 - Estimativa Falhas
  179. estimativaFalhas <- function(sourceData,legenda){
  180. nFalhas <- nrow(identificarFalhas(sourceData))
  181. tempoDeOperacao <- 0
  182.  
  183. for(i in 1:nrow(sourceData)){
  184. tempoDeOperacao = tempoDeOperacao+sourceData[i,5]
  185. }
  186. taxaDeFalhas = nFalhas/(tempoDeOperacao/60)
  187. cat(legenda)
  188. cat(" => \n")
  189. cat (" * Nº de falhas: ",nFalhas,"\n")
  190. cat (" * Tempo Operação (horas): ",tempoDeOperacao,"\n")
  191. cat (" * Taxa Real de Falhas (nFalhas/Hora): ",taxaDeFalhas,"\n")
  192. }
  193.  
  194. # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  195. #-------------
  196. # INDICADORES |
  197. #-------------
  198. # INDICADOR 1: Número de sessões simultâneas.
  199. # valor mínimo
  200. # valor máximo
  201. # valor médio
  202. # desvio padrão
  203. # outras formas de apresentação e organização dos dados
  204. # determinar uma estimativa da taxa de falhas.
  205.  
  206. # INDICADOR 2: Duração das sessões (excluindo sessões classificadaa como falhas)
  207.  
  208. # (ind2.1) valor mínimo | valor máximo | valor médio| desvio padrão
  209.  
  210.  
  211.  
  212. #imprimirMedidasLocalizacao(eliminarFalhas(SERV_vsrv8),"SERV_vsrv8")
  213. #imprimirMedidasLocalizacao(eliminarFalhas(SERV_vsrv10),"SERV_vsrv10")
  214. #imprimirMedidasLocalizacao(eliminarFalhas(SERV_vsrv11),"SERV_vsrv11")
  215. #imprimirMedidasLocalizacao(eliminarFalhas(SERV_vsrv16),"SERV_vsrv16")
  216. #imprimirMedidasLocalizacao(eliminarFalhas(SERV_vsrv17),"SERV_vsrv17")
  217. # (.....)
  218.  
  219.  
  220. # (ind2.2) outras formas de apresentação e organização dos dados
  221. #boxplot(vpnsessions$Duracao ~ vpnsessions$Servidor,xlab="Protocolo VPN",ylim=c(0,200),ylab="Duracao da Ligacao (min)")
  222. #(.....)
  223.  
  224. # (ind2.3) Determinar uma estimativa da taxa de falhas.
  225. #estimativaFalhas(vpnsessions,"Todos os servidores")
  226. #Servidores
  227. #estimativaFalhas(SERV_vsrv8,"SERV_vsrv8")
  228. #estimativaFalhas(SERV_vsrv10,"SERV_vsrv10")
  229. #estimativaFalhas(SERV_vsrv11,"SERV_vsrv11")
  230. #estimativaFalhas(SERV_vsrv16,"SERV_vsrv16")
  231. #estimativaFalhas(SERV_vsrv17,"SERV_vsrv17")
  232.  
  233. # Protocolo
  234. #estimativaFalhas(PROT_PPTP,"PROT_PPTP")
  235. #estimativaFalhas(PROT_PPTP,"PROT_PPTP")
  236. #estimativaFalhas(PROT_SOFTETHER,"PROT_SOFTETHER")
  237. #estimativaFalhas(PROT_OPENVPN_L2,"PROT_OPENVPN_L2")
  238. #estimativaFalhas(PROT_OPENVPN_L3,"PROT_OPENVPN_L3")
  239. # (...........)
  240.  
  241. # INDICADOR 3: Tempo entre falhas consecutivas num mesmo servidor.
  242.  
  243.  
  244. ##geraListaServidor <- function(sourceData,legenda){
  245.  
  246. ##j=1
  247.  
  248. cont=0
  249. j=1
  250.  
  251. for(i in 0:nrow(finalData)){
  252.  
  253. if(is.na(finalData$acesso.f))
  254. {
  255. print("xxx")
  256. }
  257.  
  258.  
  259. if(finalData$acesso.f[j] > finalData$acesso.i[i+1]){
  260.  
  261. cont=cont+1
  262.  
  263. }else{
  264. cat(j,"\n")
  265. j=j+1
  266. j=j+cont
  267. }
  268.  
  269.  
  270. }
  271.  
  272. cat(cont)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement