src/graph_ident.[ch]: Implement "ident_data_to_json".
src/dp_rrdtool.c: Adapt to new callback prototype.
src/data_provider.[ch]: Implement "data_provider_get_ident_ds_names".
src/data_provider.[ch]: Implement "data_provider_get_ident_data".
src/data_provider.[ch]: Move privider handling functions to a central place.
graph_def_json action: Use "graph_def_to_json" rather than "def_to_json".
src/graph_def.c: Minor fixes.
src/graph.[ch]: Implement "graph_def_to_json".
graph_def_json action: Add action to request graph defs as JSON.
src/graph_def.[ch]: Implement "def_to_json".
src/graph_list.c: Remove an annoying debugging message.
share/collection.conf: Swap free and used areas of the "df" graph.
src/utils_cgi.c: Fix format error.
src/graph_list.[ch]: Use the data provider to read a list of files.
Add stub for config handling wrt. data providers.
src/dp_rrdtool.c: Implement "get_ident_data" callback.
src/dp_rrdtool.c: Implement "get_ident_ds_names".
src/dp_rrdtool.c: Implement basic RRDtool data provider.
src/graph_list.[ch]: Implement "gl_register_data_provider" dummy function.
src/graph_list.[ch]: Implement a stub for "gl_register_ident".
src/filesystem.[ch]: Make directory walking functions public.
src/graph_list.c: Clear instances (again) before scanning the file system.
src/utils_cgi.c: Import a list of reserved characters from RFC 3986.
src/graph_instance.c: Properly escape parameters.
"show instance" action: Don't free "inst".
src/utils_cgi.c: Implement "uri_escape_buffer".
"show graph" action: Actively query the selected instance.
"show instance" action: Add link to current host.
src/utils_search.[ch]: Implement "search_from_ident".
"list graphs" action: Add link to display dynamic graphs, too.
"list graphs" action: List only configured graphs by default.
src/graph_list.c: Add some diagnostic output.
src/main.c: Flush and close STDOUT before calling gl_update().
This hopefully signals the browser that the request is done
before doing the maintenance work.
This hopefully signals the browser that the request is done
before doing the maintenance work.
src/graph_list.c: Only write the cache after processing a request.
src/graph_list.c: Supply create mode to open(2).
Merge remote branch 'origin/master'
Conflicts:
src/main.c
Conflicts:
src/main.c
src/graph_def.c: Only replace the ALL token.
Remove call to "gl_update()" from various actions.
It's now handled in src/main.c
It's now handled in src/main.c
src/graph_list.[ch]: Fix parsing the JSON cache.
src/graph_list.[ch]: Fix parsing the JSON cache.
src/graph_list.c: A first take at a JSON parser for reading back the cache file.
It's UNTESTED!
It's UNTESTED!
src/graph.[ch]: Implement "graph_add_inst".
"show_graph_json" action: Use the callback interface of yajl.
src/graph_list.c: First take at writing the graph list to disk.
Fix printing of JSON values.
"show_graph_json" action: Update for the new interface.
src/graph.[ch]: Implement "graph_to_json".
src/graph_instance.[ch]: Implement "inst_to_json".
src/graph_ident.[ch]: Generate JSON data using libyajl.
configure.ac: Check for yajl.
share/collection.conf: Demonstrate the new functionality with "mysql_command" graphs.
src/graph_def.c: Add error messages to "def_create".
src/graph_def.c: Make it possible for one "DEF" to handle multiple files correctly.
src/graph_def.c: Use "ident_describe" to generate a legend entry …
… if no legend has been specified. Using the DS name here isn't as good
since often many files of the same type are grouped together.
… if no legend has been specified. Using the DS name here isn't as good
since often many files of the same type are grouped together.
src/graph_instance.c: inst_describe: Use the new "ident_describe" function.
src/graph_ident.[ch]: Implement "ident_describe".
share/collection.conf: Make the disk graphs more generic.
By removing the "disk" plugin name. Other plugins, for example the
NetApp plugin, create such graphs, too.
By removing the "disk" plugin name. Other plugins, for example the
NetApp plugin, create such graphs, too.
share/collection.conf: Add a couple more generic graphs.
"search" action: Use the new search infrastructure.
src/graph.c: Fix "graph_search_inst".
Checking if a graph selector intersects with the search selector is not
sufficient, because the instance may introduce a contradiction.
The "graph_search_inst_noselector" has been introduced to simplify the
(probably common) case of no search selector being present.
Checking if a graph selector intersects with the search selector is not
sufficient, because the instance may introduce a contradiction.
The "graph_search_inst_noselector" has been introduced to simplify the
(probably common) case of no search selector being present.
src/graph_list.c: Only call "graph_ident_intersect" if the search has an ident.
src/utils_search.[ch]: Implement "search_has_selector".
src/graph_list.c: Use the new "graph_ident_intersect" function.
The (slightly advanced) search appears to work now.
The (slightly advanced) search appears to work now.
src/graph.[ch]: Implement "graph_ident_intersect".
src/graph_ident.[ch]: Implement "ident_intersect".
src/graph_list.[ch]: Implement "gl_search".
src/utils_search.[ch]: Implement "search_to_ident" and "search_graph_title_matches".
The "title" argument has been added to the "search_graph_inst_matches" function, too.
The "title" argument has been added to the "search_graph_inst_matches" function, too.
src/graph.[ch]: Implement "graph_search_inst".
src/graph.[ch]: Rename "graph_inst_search" to "graph_search_inst_string".
src/graph.[ch]: Implement "graph_matches_ident".
src/graph.[ch]: Rename "graph_matches_ident" to "graph_ident_matches".
src/utils_array.h: Note that the parameter may / must be freed by the caller.
src/graph_list.[ch]: Rename "gl_search" to "gl_search_string".
src/utils_search.h: Implement "search_graph_inst_matches".
src/utils_search.c: Add folding markers.
src/utils_cgi.c: uri_unescape_copy: Fix a potential buffer overflow.
src/utils_search.c: Implement parsing of the tokens.
src/utils_search.[ch]: Add a module for parsing search strings.
"list graphs" and "list hosts" actions: Add links to the "search" action.
"search" action: If no search string is given, display an "advanced search" form.
It's not advanced yet, but that will be coming soon.
It's not advanced yet, but that will be coming soon.
"list graphs" and "list hosts" actions: Add links to each other.
"list hosts" action: Add action to list all hosts.
"show instance" action: Link to the "search" action in the breadcrump.
src/utils_cgi.c: Use the "search" action to … well … search.
"list graphs" action: Remove the functionality to actually search for graphs.
"search" action: Copied the "list_graphs" section to here.
"list graphs" action: Don't show graphs without instances.
share/collection.conf: Add "df_complex" graph for the "NetApp" plugin.
src/graph.c: Compare instances with "inst_compare" not "ident_compare".
D'oh!
D'oh!
src/graph_instance.[ch]: Implement "inst_compare".
"show instance" action: Remove debugging message.
src/graph_list.c: Sort the instances of all graphs.
src/graph.c: Fix "graph_sort_instances".
src/graph_list.c: Fix "gl_compare_hosts".
share/collection.conf: Add a couple new graphs.
src/graph_list.c: Add dynamically generated graphs to an extra list.
Profiling has shown that the majority of time is spent looking for a matching
graph in "gl_active" in the "gl_register_file" function. By adding dynamically
generated graphs (which will only ever match one file) to an extra list,
start-up time is decreased *a lot*.
Profiling has shown that the majority of time is spent looking for a matching
graph in "gl_active" in the "gl_register_file" function. By adding dynamically
generated graphs (which will only ever match one file) to an extra list,
start-up time is decreased *a lot*.
src/graph_list.c: Increase update interval to 900 seconds.
src/graph.[ch]: Implement "graph_sort_instances".
Various: Remove argument validation after profiling.
"show graph json" action: Return the correct MIME type.