Jump to content
Sign in to follow this  
Valeriano Manassero

Monitoring Mysql 5.0 Open Source

Recommended Posts

Una volta tanto, devo richiedere informazioni (spero di essermelo meritato :D ).

 

Ho un problema di difficile risoluzione e le documentazioni in merito latitano. Potrei reperirle andandomi a girare a mano i sorgenti di MySQL ma è un lavoro osceno in quanto a tempo (che non ho), inoltre, non essendo tra i miei database preferiti, non ne ho conoscenza così approfondita.

 

Fondamentalmente devo monitorare il numero di query effettuate in un determinato lasso di tempo suddivise per database (o utente).

 

La versione di MySQL è quella Open Source e non posso ricompilarla patchandola con i sorgenti Google (che aggiungono questa feature) poichè già mi ritrovo con una versione modificata che segue un suo percorso di sviluppo ed aggiornamento.

 

I sistemi di monitoring Enterprise hanno questa possibilità, ma non la Open Source.

 

La via della lettura dei log è impraticabile; i log binari contengono solo le update queries, un log di debug genera un'impatto sulle performance impossibile da reggere visto che poi me lo devo anche parsare a colpi di awk.

 

L'utilizzo delle variabili reperibili per STATUS sarebbero perfette, ma non sono suddivise per database.

 

Ho pensato di lavorare sul parametro MAX_QUERIES_PER_HOUR, ma non ho trovato modo per farmi dire dal motore quante query mancano per raggiungere il limite, di fatto posso solo limitare senza sapere quante query sono già nel counter.

 

Trovo assurdo che nel 2010, un motore DB così diffuso sia anche così limitato, anche per quanto riguarda la documentazione in merito che è inesistente.

 

Visto che non lavoro su MySQL da qualche anno, magari sto prendendo un abbaglio abominevole e qualcuno di voi ha già sperimentato una cosa simile e l'ha risolta.

 

Ringrazio anticipatamente chi avrà voglia di darmi una mano.

 

EDIT:

Dimenticavo, ho scartato anche mysql-proxy perchè il pool di macchine che devo monitorare è estremamente variabile e non posso aggiungere un ulteriore path di aggiornamento che renderebbe la manutenzione generale snella come una vacca.

Edited by Valeriano Manassero

Share this post


Link to post
Share on other sites

Dimenticavo, ho scartato anche mysql-proxy perchè il pool di macchine che devo monitorare è estremamente variabile e non posso aggiungere un ulteriore path di aggiornamento che renderebbe la manutenzione generale snella come una vacca.

 

Stavo per postare poi ho letto l'edit... quindi alzo le mani :stordita:.

Share this post


Link to post
Share on other sites

EDIT:

Dimenticavo, ho scartato anche mysql-proxy perchè il pool di macchine che devo monitorare è estremamente variabile e non posso aggiungere un ulteriore path di aggiornamento che renderebbe la manutenzione generale snella come una vacca.

 

Una via di mezzo sporca potrebbe essere comunque scrivere due righe di parser intermedio che prende tutto quello che passa sulla 3306 lo logga a modo tuo, ma prima nel frattempo (in modo da non imbottigliare il tutto) lo gira su un'altra porta su cui avrai messo in ascolto mysql.

Share this post


Link to post
Share on other sites
Sai che ti dico?

Dubito sia possibile farlo.

Molti contatori non sono accessibili in lettura ma solo impostabili in scrittura.

Per l'appunto. Queste limitazioni mi danno molto l'idea di cose volute proprio per spingere l'Enterprise. I contatori sono già in essere (la patch Google non fa altro che cambiare dei flag), ma la giocano sul fatto che difficilmente si esce da un prodotto pacchettizzato dalla distribuzione per questioni di comodità.

Una via di mezzo sporca potrebbe essere comunque scrivere due righe di parser intermedio che prende tutto quello che passa sulla 3306 lo logga a modo tuo, ma prima nel frattempo (in modo da non imbottigliare il tutto) lo gira su un'altra porta su cui avrai messo in ascolto mysql.

A sto punto mi do a mysql-proxy se proprio devo, il problema è che devo interagire in un modo completamente differente rispetto all'analisi iniziale e prevedere un ulteriore variabile nell'update di tutti i nodi che saranno monitorati in questo modo, il che cambierà i costi di sviluppo (e manutenzione), zio cane, vedrò cosa dice il cliente (che tanto legge questo forum e lo saprà prima che io riesca a beccarlo online e verrà a tirarmi le orecchie :asd: ).

 

Grazie a tutti per i suggerimenti, torno in letargo :asd:

Share this post


Link to post
Share on other sites
Per l'appunto. Queste limitazioni mi danno molto l'idea di cose volute proprio per spingere l'Enterprise. I contatori sono già in essere (la patch Google non fa altro che cambiare dei flag), ma la giocano sul fatto che difficilmente si esce da un prodotto pacchettizzato dalla distribuzione per questioni di comodità.

 

Già... Concordo.

 

A sto punto mi do a mysql-proxy se proprio devo, il problema è che devo interagire in un modo completamente differente rispetto all'analisi iniziale e prevedere un ulteriore variabile nell'update di tutti i nodi che saranno monitorati in questo modo, il che cambierà i costi di sviluppo (e manutenzione), zio cane, vedrò cosa dice il cliente (che tanto legge questo forum e lo saprà prima che io riesca a beccarlo online e verrà a tirarmi le orecchie :asd: ).

 

Poi mi dirai come diavolo si configura mysql-proxy.

Non sono MAI (e dico MAI) riuscito a farlo funzionare e mi servirebbe per bilanciare due nodi in HA.

 

chi è il cliente che legge il forum? E sopratutto, come fai ad essere nipote di un cane? :cartello_lol:

Share this post


Link to post
Share on other sites
Poi mi dirai come diavolo si configura mysql-proxy.

Non sono MAI (e dico MAI) riuscito a farlo funzionare e mi servirebbe per bilanciare due nodi in HA.

Pagando ti mando un bel doc :asd:

chi è il cliente che legge il forum?

Non posso dare questa info, NDA in corso, se vuole interverrà lui.

E sopratutto, come fai ad essere nipote di un cane? :cartello_lol:

Meglio che io sia nipote di un cane piuttosto che riportare letteralmente l'epiteto che sto usando da giorni, fidati :asd:

Share this post


Link to post
Share on other sites
Che è appunto un proxy

 

Ma dai... io pensavo fosse un turboreattore :asd:

 

.

 

A sto punto mi do a mysql-proxy se proprio devo, il problema è che devo interagire in un modo completamente differente rispetto all'analisi iniziale e prevedere un ulteriore variabile nell'update di tutti i nodi che saranno monitorati in questo modo, il che cambierà i costi di sviluppo (e manutenzione), zio cane, vedrò cosa dice il cliente (che tanto legge questo forum e lo saprà prima che io riesca a beccarlo online e verrà a tirarmi le orecchie :asd: ).

 

Sopra dicevi che volevi evitare mysql-proxy per l'eterogeneità dei nodi etc.. inoltre mysql-proxy fa molte altre cose rispetto a quello che ti occorre ed è comunque un parser intermedio (se fosse stato direttamente dentro mysql forse, e dico forse, qualcosa poteva cambiare).

 

Altrimenti puoi solo abilitare i log lunghi, io non sono così sicuro che aumenti il carico più di un proxy, per non dire che non lo credo proprio... non c'è altra via di uscita.

In ogni caso se le esigenze sono quelle e non è per capriccio se serve occorre aggiungere risorse.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×