mdev-224 plugin usage statistics in the feedback reports
This commit is contained in:
parent
415507d392
commit
6e827f3455
@ -5,7 +5,8 @@ ACTIVE
|
||||
select * from information_schema.feedback where variable_name like 'feed%'
|
||||
and variable_name not like '%_uid';
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
FEEDBACK 1.1
|
||||
FEEDBACK used 1
|
||||
FEEDBACK version 1.1
|
||||
FEEDBACK_SEND_RETRY_WAIT 60
|
||||
FEEDBACK_SEND_TIMEOUT 60
|
||||
FEEDBACK_URL http://mariadb.org/feedback_plugin/post
|
||||
|
@ -4,7 +4,8 @@ ACTIVE
|
||||
select * from information_schema.feedback where variable_name like 'feed%'
|
||||
and variable_name not like '%_uid';
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
FEEDBACK 1.1
|
||||
FEEDBACK used 1
|
||||
FEEDBACK version 1.1
|
||||
FEEDBACK_SEND_RETRY_WAIT 60
|
||||
FEEDBACK_SEND_TIMEOUT 60
|
||||
FEEDBACK_URL http://mariadb.org/feedback_plugin/post
|
||||
|
@ -4,7 +4,8 @@ ACTIVE
|
||||
select * from information_schema.feedback where variable_name like 'feed%'
|
||||
and variable_name not like '%_uid';
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
FEEDBACK 1.1
|
||||
FEEDBACK used 2
|
||||
FEEDBACK version 1.1
|
||||
FEEDBACK_SEND_RETRY_WAIT 60
|
||||
FEEDBACK_SEND_TIMEOUT 60
|
||||
FEEDBACK_URL http://mariadb.org/feedback_plugin/post
|
||||
|
@ -152,26 +152,36 @@ namespace feedback {
|
||||
static const bool UNSIGNED= true; ///< used below when inserting integers
|
||||
|
||||
/**
|
||||
callback for fill_plugin_version() - insert a plugin name and its version
|
||||
callback for fill_plugins()
|
||||
*/
|
||||
static my_bool show_plugins(THD *thd, plugin_ref plugin, void *arg)
|
||||
{
|
||||
TABLE *table= (TABLE*) arg;
|
||||
char name[NAME_LEN*2];
|
||||
size_t name_len;
|
||||
char version[20];
|
||||
size_t version_len;
|
||||
|
||||
name_len= my_snprintf(name, sizeof(name), "%s version",
|
||||
plugin_name(plugin)->str);
|
||||
|
||||
version_len= my_snprintf(version, sizeof(version), "%d.%d",
|
||||
(plugin_decl(plugin)->version) >> 8,
|
||||
(plugin_decl(plugin)->version) & 0xff);
|
||||
|
||||
INSERT2(plugin_name(plugin)->str, plugin_name(plugin)->length,
|
||||
INSERT2(name, name_len,
|
||||
(version, version_len, system_charset_info));
|
||||
|
||||
name_len= my_snprintf(name, sizeof(name), "%s used",
|
||||
plugin_name(plugin)->str);
|
||||
|
||||
INSERT2(name, name_len, (plugin_ref_to_int(plugin)->locks_total, UNSIGNED));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
inserts all plugins and their versions into I_S.FEEDBACK
|
||||
inserts all plugins, their versions, and usage counters
|
||||
*/
|
||||
int fill_plugin_version(THD *thd, TABLE_LIST *tables)
|
||||
{
|
||||
|
@ -980,9 +980,13 @@ plugin_ref plugin_lock(THD *thd, plugin_ref ptr)
|
||||
without a mutex.
|
||||
*/
|
||||
if (! plugin_dlib(ptr))
|
||||
{
|
||||
plugin_ref_to_int(ptr)->locks_total++;
|
||||
DBUG_RETURN(ptr);
|
||||
}
|
||||
#endif
|
||||
mysql_mutex_lock(&LOCK_plugin);
|
||||
plugin_ref_to_int(ptr)->locks_total++;
|
||||
rc= my_intern_plugin_lock_ci(lex, ptr);
|
||||
mysql_mutex_unlock(&LOCK_plugin);
|
||||
DBUG_RETURN(rc);
|
||||
|
@ -99,6 +99,7 @@ struct st_plugin_int
|
||||
struct st_plugin_dl *plugin_dl;
|
||||
uint state;
|
||||
uint ref_count; /* number of threads using the plugin */
|
||||
uint locks_total; /* how many times the plugin was locked */
|
||||
void *data; /* plugin type specific, e.g. handlerton */
|
||||
MEM_ROOT mem_root; /* memory for dynamic plugin structures */
|
||||
sys_var *system_vars; /* server variables for this plugin */
|
||||
|
Loading…
x
Reference in New Issue
Block a user