00001 <?php
00002
00005
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 $enableStatisticsBroadcast = FALSE;
00047
00048
00049 if($enableStatisticsBroadcast)
00050 {
00051 include_once("framework/WebService.php");
00052 include_once("framework/db.php");
00053
00054 $data_ini = parse_ini_file(WebService::$data_ini . "data.ini", TRUE);
00055
00056 $db = new DB_Virtuoso($data_ini["triplestore"]["username"], $data_ini["triplestore"]["password"],
00057 $data_ini["triplestore"]["dsn"], $data_ini["triplestore"]["host"]);
00058
00059
00060 $sparql = " select count(?record) as ?nb_records
00061 from <".$data_ini["datasets"]["wsf_graph"]."datasets/>
00062 where
00063 {
00064 ?dataset a <http://rdfs.org/ns/void#Dataset>.
00065 graph ?dataset
00066 {
00067 ?record a ?type.
00068 }
00069 }";
00070
00071
00072 $resultset = @$db->query($db->build_sparql_query(str_replace(array ("\n", "\r", "\t"), " ", $sparql), array(), FALSE));
00073
00074 $nbRecords = "0";
00075 if(!odbc_error())
00076 {
00077 $nbRecords = odbc_result($resultset, 1);
00078 }
00079
00080 $sparql = " select count(?dataset) as ?nb_datasets
00081 from <".$data_ini["datasets"]["wsf_graph"]."datasets/>
00082 where
00083 {
00084 ?dataset a <http://rdfs.org/ns/void#Dataset>.
00085 }";
00086
00087
00088 $resultset = @$db->query($db->build_sparql_query(str_replace(array ("\n", "\r", "\t"), " ", $sparql), array(), FALSE));
00089
00090 $nbDatasets = "0";
00091 if(!odbc_error())
00092 {
00093 $nbDatasets = odbc_result($resultset, 1);
00094 }
00095
00096 $sparql = " select count(?o) as ?nb_triples
00097 from <".$data_ini["datasets"]["wsf_graph"]."datasets/>
00098 where
00099 {
00100 ?dataset a <http://rdfs.org/ns/void#Dataset>.
00101 graph ?dataset
00102 {
00103 ?record ?p ?o.
00104 }
00105 }";
00106
00107
00108 $resultset = @$db->query($db->build_sparql_query(str_replace(array ("\n", "\r", "\t"), " ", $sparql), array(), FALSE));
00109
00110 $nbTriples = "0";
00111 if(!odbc_error())
00112 {
00113 $nbTriples = odbc_result($resultset, 1);
00114 }
00115
00116
00117
00118 $statisticsXML = "<statistics>\n";
00119
00120 $statisticsXML .= " <datasets nb=\"$nbDatasets\" nbTriples=\"$nbTriples\" nbRecords=\"$nbRecords\" />\n";
00121
00122
00123
00124 $statisticsXML .= " <webservices>\n";
00125
00126 $resultset = @$db->query("select distinct requested_web_service from ".$data_ini["triplestore"]["log_table"]);
00127
00128 $webservices = array();
00129
00130 if(!odbc_error())
00131 {
00132 while(odbc_fetch_row($resultset))
00133 {
00134 array_push($webservices, odbc_result($resultset, 1));
00135 }
00136 }
00137
00138 foreach($webservices as $ws)
00139 {
00140 $resultset = @$db->query("select count(*) from ".$data_ini["triplestore"]["log_table"]." where requested_web_service = '$ws'");
00141
00142 $nbQueries = "0";
00143 if(!odbc_error())
00144 {
00145 $nbQueries = odbc_result($resultset, 1);
00146 }
00147
00148
00149 $resultset = @$db->query("select avg(request_processing_time) as average from ".$data_ini["triplestore"]["log_table"]." where
00150 requested_web_service = '$ws'");
00151
00152 $averageTime = "0";
00153 if(!odbc_error())
00154 {
00155 $averageTime = odbc_result($resultset, 1);
00156 }
00157
00158 $statisticsXML .= " <".str_replace("/", "_", $ws)." nbQueries=\"$nbQueries\" averageTimePerQuery=\"$averageTime\">\n";
00159
00160 $statisticsXML .= " <httpMessages>\n";
00161
00162 $resultset = @$db->query("select distinct request_http_response_status, count(request_http_response_status) as nb
00163 from ".$data_ini["triplestore"]["log_table"]." where requested_web_service = '$ws'
00164 group by request_http_response_status");
00165
00166 if(!odbc_error())
00167 {
00168 while(odbc_fetch_row($resultset))
00169 {
00170 $statisticsXML .= " <msg type=\"".odbc_result($resultset, 1)."\" count=\"".odbc_result($resultset, 2).
00171 "\" />\n";
00172 }
00173 }
00174
00175 $statisticsXML .= " </httpMessages>\n";
00176
00177
00178 $statisticsXML .= " <requestedMimes>\n";
00179
00180 $resultset = @$db->query("select distinct requested_mime, count(requested_mime) as nb from ".$data_ini["triplestore"]["log_table"]." ".
00181 "where requested_web_service = '$ws' group by requested_mime");
00182
00183 if(!odbc_error())
00184 {
00185 while(odbc_fetch_row($resultset))
00186 {
00187 $statisticsXML .= " <mime type=\"".odbc_result($resultset, 1)."\" count=\"".odbc_result($resultset, 2).
00188 "\" />\n";
00189 }
00190 }
00191
00192 $statisticsXML .= " </requestedMimes>\n";
00193
00194
00195 $statisticsXML .= " </".str_replace("/", "_", $ws).">\n";
00196 }
00197
00198 $statisticsXML .= " </webservices>\n";
00199
00200
00201
00202 $statisticsXML .= "</statistics>\n";
00203
00204 header("Content-Type: text/xml; charset=utf-8");
00205
00206 echo $statisticsXML;
00207 }
00208
00209
00211 ?>