viernes, abril 27, 2012
Wily Introscope: CPU monitoring with EpaAgent of all JAVA processes listening on a port.

Ive modified a GroovyEpaAgent script that I got, to monitor every JVM process on a unix machine.This one was tested on a PP64 (suse), and send the CPU usage of every JAVA process listening on the server.


Hopefully will be usefull for someone too.

/*
 * cpuWebLogic.groovy
 *
 *  Author: Michael F. Aube, CA Wily
 *  Modified by: Gustavo Benitez gabenitez@gmail.com
 * Created: 17 December, 2008
 *
 * This EPAgent Groovy script was originally designed to monitor the CPU Utilization of 
 * each and every WebLogic.
 *
 * Then, it was modified to monitor the CPU usage of all the JAVA processes on the server.
 * This script was tested on a PPC64.
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *      IMPORTANT NOTE:
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *      Since Introscope can only capture INTEGER VALUES for these CPU metrics,
 *      a given JVM may have a CPU Utilization metric value of ZERO, when in 
 *      fact it has a "real" value between 0.0 and 0.4 percent CPU Utilization.
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */

class osCommand
{
   String cmd
   String output
   List   lines
   
   /** Answers a new O/S command; ready to be invoked. **/
   osCommand (String aCommand)
   {
      this.cmd = aCommand
   }     
   
   /** Answers a list of the output lines generated by this command. **/
   List execute()
   {
 this.output = ""
 this.lines = []
      Process process = cmd.execute()
      process.waitFor()
 
      if (process.exitValue())
         print process.err.text   // this can't be good...
      else
         output = process.text
//print "Resultado de la ejecucion:" + output
     this.lines = output.split(/\n/)
 
return this.lines
   }
}


class JvmMetric 
{
   String cpuPct            // CPU Utilization %, rounded to nearest integer 
   String pid               // the JVM's O/S Process ID
   private String nameAttr  // an XML attribute for an Introscope Metric  
   private String valueAttr // an XML attribute for an Introscope Metric
   private String typeAttr  // an XML attribute for an Introscope Metric
   
   JvmMetric (String aLine) 
   {
 cpuPct = "0"  
      pid = this.extractPID(aLine)
 def port = this.extractPort(aLine)
 def name=this.extractName(aLine)
 nameAttr  =/name='$name'/
 typeAttr  = "type='IntAverage'"
 valueAttr = ""                   // TBD - need to know the cpuPct first!
   }
   
   String asXML()  // answer this metric as XML suitable for the Introscope EM
   {
      valueAttr = "value='$cpuPct'"    // assumes cpuPct has been set!
      return ""
   }
   
   private String extractPID(String aLine)
   {
      def fields = aLine.split(/\s+/)
 return fields[1]
   }
   
   private String extractName(String aLine)
   {
def texto=aLine
def start = 62
def end = (texto.size())  
def tFinal=texto.substring(start,end)
//Just add here a better formating.
//A good one may be to and a Dummy parameter to the JVM startup script called AP_NAME, and extrat that value to show at the 
//metric tree. 
tFinal=tFinal.replaceAll("\\.",".")
tFinal=tFinal.replaceAll("\\=",".")
tFinal=tFinal.replaceAll("\\:",".")
tFinal=tFinal.replaceAll("\\/",".")
tFinal=tFinal.replaceAll("\\-",".")
return tFinal
   }
   
   
   private String extractPort(String aLine)
   {
      def pattern = '-Dweblogic.Name='
 def start = aLine.indexOf(pattern) + pattern.size()
 def stop  = aLine.indexOf(' ', start) - 1  // ASSUMES a space at the end!
 return aLine.getAt(start..stop)
   }
   
}
   // **************************
   // BEGIN AGENT SCRIPT HERE...
   // **************************
   //Etract all the PIDs that belongs to a JVM instance on the server.
   def commandStr= /netstat -lnptu|grep java|awk -F' '  '{print $7}'  |awk -F\/ '{print $1}'|awk '{RS="\n";puertos[$1]=$1;}END{for(i in puertos){ORS=",";print puertos[i]}}'|cut -c2-|sed 's\/\(.*\).\/\1\/'/
   command = ["sh", "-c", commandStr]

   process = command.execute();
   process.waitFor()
   pids = process.text
    
   //Gets the CPU usage of all the java proceses that we got eearlier
   prstat = ["sh", "-c", "top -c -b -n 1 -p "+ pids]
   Process process = prstat.execute()
   process.waitFor()
   cpuLines = process.text
   lines=cpuLines.split(/\n/)      
   //Send the metrics to the EM
   (7..lines.size() -1 ).each { index ->
       metric = new JvmMetric(lines[index].trim())
  fields = lines[index].trim().split(/\s+/)   
       cpu = fields[8]
       n = Math.round(new Float(cpu))
       metric.setCpuPct(n.toString())
       // send the metric XML to the Introscope Enterprise Manager
       EMOUTPUT.println metric.asXML()   
   }
   
   // **************************
   // END AGENT SCRIPT HERE.
   // **************************

 
posted by [DevNull] at 12:30 p. m. | Permalink | 0 comments
martes, julio 26, 2011
Pulmenti! en el Android Market.
Después de varios meses de desarrollo por parte del equipo, Pulmenti! ya está terminado!
Este juego de Sopa de letras para Celulares Android, sale al market con su primer verion "Lite".

Creado para paladares exigentes y alegres, este juego de sopa de letras te llevara a la mesa de un restó donde el entretenimiento es el plato fuerte del día.
Un juego de sopa de letras ilimitadamente exquisito y con un giro muy original, la posibilidad de jugar contra reloj y avanzar sopa a sopa a un ritmo alocado.


Bajatelo gratis de:
https://market.android.com/details?id=com.ar.hotsoup
Seguinos en Facebook:
http://es-es.facebook.com/Pulmenti
Y en twitter:
http://twitter.com/#!/funcando

Para más novedades, visitá el sitio:
http://pulmenti.funcando.com/

Disfruten!

Etiquetas: , , ,

 
posted by [DevNull] at 3:21 a. m. | Permalink | 0 comments
miércoles, noviembre 24, 2010
2010 - Crónicas de una Odisea: Como darse de baja de Claro Argentina
No sabia lo difícil que era dar de baja el servicio de Claro hasta que lo intenté. Básicamente, tienen un ejercito de gente totalmente entrenada en el arte negro de la persuasión.

Después de varios intentos en vano por parte de atención del Cliente de remontar algo que hace rato habían perdido, me dicen que no puedo dar de baja la linea por el medio telefónico, que tenia una opción, pasar la linea a modo "tarjeta".

Yo: "Bueno, si es más rápido, pasemos la linea a tarjeta entonces... de ultima no me jode tenerla por las dudas".
RC: "Bueno Sr, necesitamos realizar una carga inicial de $30".
Yo: "O_o Como!?"
RC: "Si Sr, esto es para habilitar la linea..."
Yo: "O_o"
Yo: "No, no quiero pagarles más por el servicio, procedamos a la baja..."
RC: "Tiene que enviar una carta al apartado post...." YO: "Carta!!!?? eso cuanto va a demorar!?"
RC: "10 dias hábiles Sr."
YO: "10 dias habilies!? Pero si llamé hoy, 5 dias antes del cierre, justamente para que no me cobren un mes más de facturación que no voy a consumir"
RC: "Es el procedimiento de la empresa"
YO: "...." <--- nivel excesivo de frustración.


Hace 10 días, preferí enviar una carta certificada que costó al rededor de $25, lo cual es bastante cercano a los $30 que me pedían para pasar la linea a modo tarjeta. También, es verdad que podria haber enviado una carta gratuita, sin costo, un tipo de envio especial para estos fines, sin embargo no queria dejar lugar a que Claro dijera "Uhhyy!! No me llegó! Enviala de nuevo", fueron $25 de inversion. En fin, la carta en cusetion rezaba:

"
Sres Claro Argentina,
Mediante la presente solicito la baja del servicio de telefonica celular prestado por vuestra empresa.

Numero de linea: (011) 3 311 44XX
DNI: 29 XXX XXX

Motivos de baja:
- Mal servicio
- Deficiente atención al cliente
- Engorroso sistema de baja

Firma: _____________
"


Hoy, llamé de nuevo a la linea de atencion al cliente, al *611, y obtuve mi numero de transaccion por baja.
Ya no tengo Claro, y me siento más Personal :P

Éxitos!
 
posted by [DevNull] at 12:37 p. m. | Permalink | 7 comments
martes, marzo 16, 2010
TEDxBuenosAires!
Organizadores independientes tienen preparado para el 8 de abril una conferencia del estilo TED (de hecho, es TED licenciado) en la Rural.


La pre-inscripción reunió alrededor de 6000 interesados en participar (conmigo incluido), asi que... Ahí estaré.

Les dejo un par de mis videos preferidos.

Ken Robinson says schools kill creativity




Tony Robbins asks why we do what we do


Mas info@http://tedxbuenosaires.org
Oradores: http://tedxbuenosaires.org/?page_id=840

Etiquetas: ,

 
posted by [DevNull] at 11:59 a. m. | Permalink | 1 comments
miércoles, diciembre 16, 2009
Entienda Oracle DB en 10 minutos.
El siguiente video es lo que todos los que se inician en el mundo de Oracle desean encontrar como
primer link luego de la instalacion.

Dá un pantallazo en 10 minutos de como funciona esta base de datos. Desde como inicarla hasta una minima explicacion de como funciona. Muy bueno para un Hot-Start.
Excelente.




Etiquetas: , , ,

 
posted by [DevNull] at 12:26 p. m. | Permalink | 0 comments
viernes, diciembre 11, 2009
Speedy.com.ar / Advance.com.ar Defacement! 11/12/2009
Speedy.com.ar hacked!
Por fin alguien hizo justicia! mis congratulaciones a Gangsta Killa && sLi que tomaron carta en el asunto y escracharon a www.speedy.com.ar que hasta el momento de este post mostraba:

Misma suerte para advance.com.ar:



Mis Felicitaciones nuevamente!

Exitos!

Etiquetas: , ,

 
posted by [DevNull] at 12:28 p. m. | Permalink | 0 comments
miércoles, noviembre 11, 2009
Google, Hasta donde podes llegar?
Como seguramente les pasará a ustedes, no recuerdo exactamente cuando fue que nació mi fanatismo por está poderosísima empresa. Sin embargo, sé que hoy se debe a que me fascina su capacidad para crecer, crecer, crecer, y crecer; aparentemente sin limites.

Sin darme cuenta, un día me encontré con Google por todos lados, Desde el mejor buscador que existe, hasta servidores de Applicaiones gratuito, lenguaje de programación Open Source propio, y miles de cosas en el medio que de hacer un lista, mereceria un post completo.

Pero, como llegó a esto? Una sola palabra: Confianza. "In google we trust" no le queda grande, y es sin duda por que encontraron la forma de hacerlo.

Que grande los tipos que en su momento vieron que quien tuviera control de la información seria quien tuviera el poder. Ellos, hoy tienen el poder. Espero no se corrompan.

Les dejo un excelente video en donde Eric Schmidt el CEO de Google, es entrevistado por unos analistas. No tiene desperdicio.

Éxitos.-

 
posted by [DevNull] at 10:32 a. m. | Permalink | 0 comments