Splunk usage for UI events and activity - splunk

One of the main functions we are attempting to fill is to log/visualise application UI events from users.
We currently log events on our iPhone application to a custom built 'backend' where we can see for each user what they have done, ie start_activity, add_option, take_photo etc etc pretty much as they do it. We are needing the same for the google appengine application that we are building, for both client side and server side events.
I am wondering if splunk would be useable for this, or should we be using another tool first (like with nagios for infrastructure stuff then forwarding on)? Otherwise should we just use a Mixpanel or other app for events logging? Or can we just pump straight into splunk and build off that?

With Splunk you can easily count the number of occurrences of "events" (literal data) in log data that happen over various periods of time. For example, if you want to count the number of times a photo has been taken you would perform the following SEARCH command in Splunk:
'take_photo' | timechart span=1h count
This will count the number of log records containing "take_photo" in each hour charting the results.

Related

How to create Multi-metric Alarm?

There are multiple instances with servicename-N running & i am able to push custom metric using python sdk to Namespace-X. However when i create alarm it only let me select One metric from one of the instances. i have tried Metric Math based alarm but the email notification doesnt include detail information(serviceName, instanceID).
Any pointers to achieve this(eg. have meta data like serviceName in notification email) ?
scenario image
You can achieve this by creating a Metric Insights alarm (https://aws.amazon.com/about-aws/whats-new/2022/12/amazon-cloudwatch-metrics-insights-alarms/).
Amazon CloudWatch Metrics Insights alarms enables customers to alarm on entire fleets of dynamically changing resources with a single alarm using standard SQL queries...With Metric Insights alarms you can set alarms using Metric Insight queries that monitor multiple resources without having to worry if the resources are short lived or not. For example, you can set a single alarm that alerts when any of your EC2 instances reaches a high threshold for CPU utilization and the alarm will evaluate new instances that are launched afterwards.
Alternatively, you can create an alarm for each individual time series and then create a composite alarm that groups the individual alarms. You can then put your action on the composite alarm. https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html

Trello: how to generate an activity report using card list change dates

In an effort to unify and automate my activity report across multiple projects I am trying to generate a timeline-like report from several Trello boards.
An event on the timeline would be generated when a card is moved into the "Doing" list, with the time of list change as the start date.
The end date stays at the current date until the card is moved to the "Done" list at which point it's set to the date on which the activity was completed.
I've looked at some tools to connect Trello activity to Google Calendar, so far with no success:
Trello powerups: only provides due dates when connecting to the calendar
IFTTT - doesn't seem to provide Trello as a recipe source
Zapier - Only provides due date and last activity dates as source values
Ducksboard - No template available for this kind of visualisation
Ideally, an "API catalyst" like the ones listed above would be the best solution, alternatively any other suggestion on how to approach the problem using other tools is very welcome (I have a little experience with d3.js).
Just do it yourself with their API, you can check the guide.
Here's my algorithm for a similar task where I show which cards were having that user as a member, so basically it's like "which cards have I been working on yesterday?" report.
Connect Trello SDK;
Authorize user (only read permissions) when he clicks a button (so the popup doesn't get blocked);
Fetch /tokens/[token] endpoint to figure out the user's memberID;
Fetch /members/[memberID]/actions for a required period filtering only by addMemberToCard,removeMemberFromCard actions;
Run a loop over resulting array to figure out datetime difference between addMemberToCard and removeMemberFromCard for every card in the response;
Format everything and show to the user!
As an example, here's my realization of it: Trello Activity Report
Code is here: https://github.com/pistonsky/trello-activity-report
P.S. Instead of using addMemberToCard and removeMemberFromCard action types, you can filter by updateCard:idList and calculate the datetime difference between when card is moved from To Do to Done list.

Present variable information within a single mturk HIT

I'd like to use mturk to have 10 workers visit my website, log in with a test account, and enter some information on their profile. I don't want them to see each other's entries, so each worker should get login information for a different test account when they view the HIT.
This almost looks like what mturk's template feature is for -- I could upload a CSV with the information for each test account. But if I understand correctly, that will make 10 separate HITs, and allow one worker to do all 10 of them. Is there any way to have mturk put information that varies between workers into a single HIT?
Here are the solutions I'm currently aware of:
Use the CLI to automate creation of a bunch of different HITs. This would be a lot of work, and also make approving and retrieving the results cumbersome.
Direct workers to a survey website that's capable of doing what I want, and have them get the login information there.
Dynamically fill in part of the HIT using an AJAX request to an external website and database. That seems like crazy overkill for something so simple.
Are there other options?

Periodic tile update

I'm developing an application, that allows using dictionaries (e.g. English-German). I want to enable periodic tile updates for my application at start screen. I want to show random word with translation from random dictionary, so all I want to do is just show 2 strings (I found an appropriate template for it). I can show the notification once using TileUpdateManager.CreateTileUpdaterForApplication().AddToSchedule()
but I want it to happen say every minute. I only found examples that use TileUpdateManager.CreateTileUpdaterForApplication().StartPeriodicUpdate() method and they all use some web address. Is there any way to make it happen using just my local strings without accessing cloud or something?
For showing periodic tile updates periodically when your app is not running you need to provide a URL that will be requested every once in a while (I don't think you can set it to as frequent as 1 minute though - I think the least is 15 minutes.).
If your app is in the foreground, you can simply run a timer and show an update every minute.
You could use push notifications, but again - that's more complex than just providing a URL that returns the XML for a tile update.
In case you want to look at the possibilities: http://blog.equinoxe-consulting.net/blog/bard-rsquo-s-tile-i-introduction-and-local-tiles-and-badges

How to stop bounce rate manipulation

Using Google analytics I have started noticing some sort of spam/attack/bounce rate manipulation happening with one of my sites. Essentially, there are a large number of daily hits from the same user, searching for the same long tail keyword, that always immediately bounces out of the page. This has been going on for over a month. My question is this: is there any way to track this user/ip and block them from the site, or any other technique that I could use to keep this from affecting my bounce rate and messing with my analytics data?
Given that you tagged your question with Google Analytics, i assume that your question is directed to identifying this false traffic so you can prevent it from contaminating your web metrics--rather than how to actually stop the offending activity. In any event, my question is only directed to the former.
Rather than having to refer to your server activity logs, or adding a node to your production data flow, you can do this solely from within Google Analytics.
From the Analytics Settings Panel, click Filter Manager, then enter a name for this filter in the text box.
The filter field will be Hostname, and once you click this you'll see a textbox in which you enter a pattern for the hostname. so you would enter something like this:
^somedomain.com$
The benefits of this approach is that it will work based on information already made available to you in GA--the Hostname, which is an attribute of every pageview from the suspicious source.
Try blocking the IP with .htaccess http://www.javascriptkit.com/howto/htaccess5.shtml