Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The fine tuning process is essential In order to ensure qualitative and accurate data, it is ideal to go through the fine tuning process on your system. This section provides detailed instructions on how to perform the fine tuning processfine tune your system.

CardioLog collects usage data for various event types (, including views, visits, duration, search etc.). , and most other ways a user can interact with your site. The Usage Data Processing service component matches events to their the corresponding item in your SharePoint tree item. An Any event which has associated with a URL that does not match any item in your tree item (for instanceeg., a A URL address which includes a list of custom parameters, or a URL which is not part of the  your monitored environments) is called known as a " Lost Event". Lost events are not displayed in the reports' results by default, they . Report results do not display lost events by default. They appear only after fine tuning the data.

Tuning Fine tuning the data includes of the following steps:

  1. Determining which data should not be collected and defining data collection filters.
  2. Identifying Lost Events and defining URL address modifications

It is recommended to perform this process about a month after the initial installation of in the production environment, 2-3 weeks after an upgrade, and 2-3 weeks after adding a any new monitored environment to CardioLog.Fine  Fine tuning should be performed by a user with a local administrator account on the CardioLog server and with a CardioLog Administrator role. Contact us for further assistance.

Contents

Anchor
identifying lost
identifying lost
Identifying Lost Events

1.  Execute the following SQL script against the CardioLog database to get a list of the lost events event URLs. This can be done for a specific date range (edit the date range by editing the timestamp in the SQL query):

...

2.  Check if the URL matches a SharePoint tree item. If it does not match, identify one of the reason reasons for the missing URL:

  • URL with custom parameters
  • URL with an internal server name (, instead of FQDN)
  • URL with a non-secure channel (, instead of a secure channel and vice-versa)
  • URL for from a non-monitored environment

3.  Create URL mappings Mappings based on Regular Expressions (See how to create URL Mappings). Examples. Examples:

  • URL with custom parameters:
     
    pattern: "aspx\?department=.*"
    action:
     "aspx"
     
  • URL with an internal server name (, instead of FQDN):
     
    pattern: "http://websrv01/(.*)"
    action:
     "http://www.intlock.com/${1}"
     
  • URL with a non-secure channel (, instead of a secure channel and viceor  vice-versa):

    pattern: 
    "http://www.intlock.com/(.*)"
    action:
     "https://www.intlock.com/${1}"
     
  • Data for URLs for from a non-monitored environment (external) or administration pages (under /_layouts) can be seen in the "Page Views By URL" and "Unique Users by URL" reports.

...

1.  Make sure that there is a full backup of the CardioLog database before you continue to the next step.

2.  Fix your history usage data according to the your URL Mappings. The following example replaces the internal server name with the FQDN (edit Edit the start date timestamp in the SQL query to a relevant date range for you). 
     Create a script based on this example to fix history data according to for the URL Mapping you have created and . Then execute it against the CardioLog database.

/* Example: Replace the internal server name to the portal name - http http://websrv01/ > http > http://www.intlock.com/ */

 

Use CardioLog

GO

declare @top int 
declare @startTime datetime 
declare @endTime datetime

set @top = 10000 

set @startTime = '2010-09-01' /* Edit the start date (date format: YYYY-MM-DD) */

set @endTime = GETDATE() + 1

select top 1 '1' from tab_event_log
while @@rowCOunt > 0
begin
print cast(@top as varchar(50))
;with a as (select top (@top) url, searchUrl, QueryString
from tab_event_log LG
where 
eventtype in (0,1)
and Timestamp >= @startTime
and Timestamp < @endTime
and entityid = '00000000-0000-0000-0000-000000000000'
and SearchURL like 'http://websrv01/%'

update a 
set QueryString = Url,
Url = substring(replace(url,'http://websrv01/','http://www.intlock.com/'), 0, 1000),
SearchURL = substring(replace(SearchURL,'http://websvr01/','http://www.intlock.com/'), 0, 400)
end
GO

3.  Execute the following SQL script against the CardioLog database to map the Lost Events lost events to their corresponding SharePoint tree item. This can be done for a specific date range (edit editing the date range timestamp in the SQL query):

Use CardioLog

GO

/********************************************************************************/
/**** Fix Lost Events *****/
/********************************************************************************/

IF NOT EXISTS (SELECT name FROM sysindexes WHERE name = 'idx_tab_event_log_temp_for_update')
create index idx_tab_event_log_temp_for_update on tab_event_log(entityId, eventLogId) include (timestamp, eventType, entityType)
GO

declare @startTime datetime
declare @endTime datetime
declare @top int 
declare @rowsupdated bigint 
declare @continue smallint
declare @EventLogId bigint

set @top = 10000
set @rowsupdated = 0 
set @startTime = '2010-09-01'  /* Edit start date (date format: YYYY-MM-DD) */
set @endTime = GETDATE() + 1

if object_id('tempdb..#tmp_fix_url') IS NOT NULL
begin
drop table #tmp_fix_url
end

select top (@top) LG.eventlogid
into #tmp_fix_url 
from
tab_Event_log LG
where
LG.[timestamp] >= @startTime
and LG.[timestamp] < @endTime
and LG.entityid = '00000000-0000-0000-0000-000000000000'
and (LG.eventtype in (0,1)) 
and LG.entitytype <> -2 
order by LG.EventLogId asc

select @continue = @@ROWCOUNT

while @continue > 0 begin

update LG 
set LG.entityid = TR.id, LG.splocation = TR.location, 
LG.entitytype = TR.entitytype 
from tab_event_log LG
join 
tab_sharepoint_tree TR on LG.SearchURL = TR.url 
join
#tmp_fix_url tmp on tmp.EventLogId = LG.EventLogId 
where TR.isDeleted=0

select @rowsupdated = @rowsupdated + @@ROWCOUNT

begin try
print convert(varchar(30), getdate(), 121) + ' - ' + cast(@rowsupdated as varchar(10)) + ' rows were updated'
end try
begin catch
end catch

select @EventLogId=max(EventLogId) from #tmp_fix_url

truncate table #tmp_fix_url 

insert into #tmp_fix_url 
select top (@top) LG.eventlogid
from tab_Event_log LG
where
LG.EventLogId > @EventLogId and
LG.entityid = '00000000-0000-0000-0000-000000000000' and
LG.[timestamp] >= @startTime and
LG.[timestamp] < @endTime and
(LG.eventtype in (0,1)) and
LG.entitytype <> -2
order by EventLogId asc

select @continue = @@ROWCOUNT

end

drop index tab_event_log.idx_tab_event_log_temp_for_update

 

/* Delete reporting data cache */

delete from tab_controls_cache

print 'Done'

...