From 863065abc4fef6e4a2415c6ba5085fb4db3c14fa Mon Sep 17 00:00:00 2001 From: orbiter Date: Mon, 18 Oct 2010 08:09:59 +0000 Subject: [PATCH] added user agent logging to access tracker git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7256 6c8d7289-2bf4-0310-a012-ef5d649a1542 --- htroot/AccessTracker_p.html | 3 +++ htroot/AccessTracker_p.java | 1 + htroot/AccessTracker_p.xml | 4 ++-- htroot/IndexControlRWIs_p.java | 2 +- htroot/yacy/search.java | 6 ++++-- htroot/yacysearch.java | 3 ++- source/de/anomic/search/DocumentIndex.java | 2 +- source/de/anomic/search/QueryParams.java | 9 +++++++-- source/net/yacy/cora/protocol/RequestHeader.java | 1 + 9 files changed, 22 insertions(+), 9 deletions(-) diff --git a/htroot/AccessTracker_p.html b/htroot/AccessTracker_p.html index e191926d3..814d026b3 100644 --- a/htroot/AccessTracker_p.html +++ b/htroot/AccessTracker_p.html @@ -79,6 +79,7 @@ URL fetch (ms) Snippet comp (ms) Query + User Agent @@ -93,6 +94,7 @@ #[urltime]# #[snippettime]# #[querystring]# + #[userAgent]# #{/list}# @@ -107,6 +109,7 @@ Ø #[urltime_avg]# Ø #[snippettime_avg]# + diff --git a/htroot/AccessTracker_p.java b/htroot/AccessTracker_p.java index 8853b9c49..279ad058e 100644 --- a/htroot/AccessTracker_p.java +++ b/htroot/AccessTracker_p.java @@ -176,6 +176,7 @@ public class AccessTracker_p { prop.putNum("page_list_" + entCount + "_urltime", searchProfile.urlretrievaltime); prop.putNum("page_list_" + entCount + "_snippettime", searchProfile.snippetcomputationtime); prop.putNum("page_list_" + entCount + "_resulttime", searchProfile.searchtime); + prop.putHTML("page_list_" + entCount + "_userAgent", searchProfile.userAgent); qcountSum += searchProfile.itemsPerPage; rcountSum += searchProfile.resultcount; utimeSum += searchProfile.urlretrievaltime; diff --git a/htroot/AccessTracker_p.xml b/htroot/AccessTracker_p.xml index d8b2022fc..05af4b87e 100644 --- a/htroot/AccessTracker_p.xml +++ b/htroot/AccessTracker_p.xml @@ -26,11 +26,11 @@ #[offset]# #[querycount]# #[resultcount]# - #[querytime]# #[resulttime]# #[urltime]# #[snippettime]# - #[querystring]# + #[querystring]# + #[userAgent]# #{/list}# diff --git a/htroot/IndexControlRWIs_p.java b/htroot/IndexControlRWIs_p.java index 272edfeef..a18fbbecc 100644 --- a/htroot/IndexControlRWIs_p.java +++ b/htroot/IndexControlRWIs_p.java @@ -517,7 +517,7 @@ public class IndexControlRWIs_p { } public static RankingProcess genSearchresult(final serverObjects prop, final Switchboard sb, Segment segment, final byte[] keyhash, final Bitfield filter) { - final QueryParams query = new QueryParams(new String(keyhash), -1, filter, segment, sb.getRanking()); + final QueryParams query = new QueryParams(new String(keyhash), -1, filter, segment, sb.getRanking(), "IndexControlRWIs_p"); final ReferenceOrder order = new ReferenceOrder(query.ranking, query.targetlang); final RankingProcess ranked = new RankingProcess(query, order, Integer.MAX_VALUE); ranked.run(); diff --git a/htroot/yacy/search.java b/htroot/yacy/search.java index 8cc6c125e..55ac52929 100644 --- a/htroot/yacy/search.java +++ b/htroot/yacy/search.java @@ -223,7 +223,8 @@ public final class search { client, false, indexSegment, - rankingProfile + rankingProfile, + header.get(RequestHeader.USER_AGENT, "") ); yacyCore.log.logInfo("INIT HASH SEARCH (abstracts only): " + QueryParams.anonymizedQueryHashes(theQuery.queryHashes) + " - " + theQuery.displayResults() + " links"); @@ -276,7 +277,8 @@ public final class search { client, false, sb.indexSegments.segment(Segments.Process.PUBLIC), - rankingProfile + rankingProfile, + header.get(RequestHeader.USER_AGENT, "") ); yacyCore.log.logInfo("INIT HASH SEARCH (query-" + abstracts + "): " + QueryParams.anonymizedQueryHashes(theQuery.queryHashes) + " - " + theQuery.displayResults() + " links"); yacyChannel.channels(yacyChannel.REMOTESEARCH).addMessage(new RSSMessage("Remote Search Request from " + ((remoteSeed == null) ? "unknown" : remoteSeed.getName()), QueryParams.anonymizedQueryHashes(theQuery.queryHashes), "")); diff --git a/htroot/yacysearch.java b/htroot/yacysearch.java index c6aa358cd..b3b1aa17d 100644 --- a/htroot/yacysearch.java +++ b/htroot/yacysearch.java @@ -491,7 +491,8 @@ public class yacysearch { client, authenticated, indexSegment, - ranking); + ranking, + header.get(RequestHeader.USER_AGENT, "")); EventTracker.delete(EventTracker.EClass.SEARCH); EventTracker.update(EventTracker.EClass.SEARCH, new ProfilingGraph.searchEvent(theQuery.id(true), SearchEvent.Type.INITIALIZATION, "", 0, 0), false); diff --git a/source/de/anomic/search/DocumentIndex.java b/source/de/anomic/search/DocumentIndex.java index 99c5e75a0..0888addd5 100644 --- a/source/de/anomic/search/DocumentIndex.java +++ b/source/de/anomic/search/DocumentIndex.java @@ -189,7 +189,7 @@ public class DocumentIndex extends Segment { */ public ArrayList find(String querystring, int count) { // make a query and start a search - QueryParams query = new QueryParams(querystring, count, null, this, textRankingDefault); + QueryParams query = new QueryParams(querystring, count, null, this, textRankingDefault, "DocumentIndex"); ReferenceOrder order = new ReferenceOrder(query.ranking, query.targetlang); RankingProcess rankedCache = new RankingProcess(query, order, SearchEvent.max_results_preparation); rankedCache.start(); diff --git a/source/de/anomic/search/QueryParams.java b/source/de/anomic/search/QueryParams.java index 89b8e56b4..c209e8fe6 100644 --- a/source/de/anomic/search/QueryParams.java +++ b/source/de/anomic/search/QueryParams.java @@ -100,12 +100,14 @@ public final class QueryParams { public int resultcount; // number of found results public long searchtime, urlretrievaltime, snippetcomputationtime; // time to perform the search, to get all the urls, and to compute the snippets public boolean specialRights; // is true if the user has a special authorization and my use more database-extensive options + public final String userAgent; public QueryParams(final String queryString, final int itemsPerPage, final Bitfield constraint, final Segment indexSegment, - final RankingProfile ranking) { + final RankingProfile ranking, + final String userAgent) { if ((queryString.length() == 12) && (Base64Order.enhancedCoder.wellformed(queryString.getBytes()))) { this.queryString = null; @@ -148,6 +150,7 @@ public final class QueryParams { this.specialRights = false; this.navigators = "all"; this.indexSegment = indexSegment; + this.userAgent = userAgent; } public QueryParams( @@ -168,7 +171,8 @@ public final class QueryParams { final String host, final boolean specialRights, final Segment indexSegment, - final RankingProfile ranking) { + final RankingProfile ranking, + final String userAgent) { this.queryString = queryString; this.queryHashes = queryHashes; @@ -200,6 +204,7 @@ public final class QueryParams { this.handle = Long.valueOf(System.currentTimeMillis()); this.specialRights = specialRights; this.indexSegment = indexSegment; + this.userAgent = userAgent; } public Segment getSegment() { diff --git a/source/net/yacy/cora/protocol/RequestHeader.java b/source/net/yacy/cora/protocol/RequestHeader.java index 237f6c485..3de365164 100755 --- a/source/net/yacy/cora/protocol/RequestHeader.java +++ b/source/net/yacy/cora/protocol/RequestHeader.java @@ -38,6 +38,7 @@ public class RequestHeader extends HeaderFramework { public static final String CONNECTION = "Connection"; public static final String PROXY_CONNECTION = "Proxy-Connection"; public static final String KEEP_ALIVE = "Keep-Alive"; + public static final String USER_AGENT = "User-Agent"; public static final String AUTHORIZATION = "Authorization"; public static final String WWW_AUTHENTICATE = "WWW-Authenticate";