<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic AppDynamics  JS Agent API in Splunk AppDynamics</title>
    <link>https://community.splunk.com/t5/Splunk-AppDynamics/AppDynamics-JS-Agent-API/m-p/723539#M3773</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I am trying to achieve the below tasks. Can you tell me how to do it&lt;/P&gt;
&lt;P&gt;- Fire AppDyanmics JS API to report key metrics for each of the events&lt;BR /&gt;- View and organize metrics on AppDyanmics Dashboard&lt;BR /&gt;- providing code snippet below&lt;BR /&gt;- can you tell me how to fir it&lt;/P&gt;
&lt;P&gt;passOrfailPopup(rankEvent, occurrences, isSwimming, isNew, dataList) {&lt;BR /&gt; let passOrDelete = "";&lt;BR /&gt; let that = this;&lt;BR /&gt; let clickEvent = true;&lt;BR /&gt; if (isSwimming) {&lt;BR /&gt; $("#blockChangePopWith").find('.kendoContent').text("Overlap exists. Please confirm.");&lt;BR /&gt; $("#sports").show();&lt;BR /&gt; passOrDelete = "Delete";&lt;BR /&gt; } else {&lt;BR /&gt; $("#blockChangePopWith").find('.kendoContent').text("Are you sure you want pass show(s)?");&lt;BR /&gt; $("#sports").hide();&lt;BR /&gt; passOrDelete = "pass";&lt;BR /&gt; }&lt;BR /&gt; $("#blockChangePopWith" + ' .kPopUpTitle').text('Scheduling');&lt;BR /&gt; let dialog = $("#blockChangePopWith").data("kendoWindow").center().open();&lt;BR /&gt; let occurrencesCount = that.spanFilterCount(occurrences);&lt;/P&gt;
&lt;P&gt;$("#passOK").text(passOrDelete + " (" + occurrencesCount + ")");&lt;BR /&gt; $("#passOK").unbind().click(function () {&lt;BR /&gt; if (clickEvent) {&lt;BR /&gt; dialog.close();&lt;BR /&gt; that.requestStart();&lt;BR /&gt; setTimeout(function () {&lt;/P&gt;
&lt;P&gt;var emptyOccurence = { "event": [], "index": [] }&lt;BR /&gt; clickEvent = false;&lt;BR /&gt; that.spanRemoveFind(occurrences);&lt;BR /&gt; let occurenceEventList = that.getSourceEvents(occurrences);&lt;BR /&gt; that.removeItems(occurrences, false);&lt;BR /&gt; //that.timeSwimming(rankEvent,(new Date(rankEvent.start)),(new Date(rankEvent.end)),isNew,occurenceEventList,true);&lt;BR /&gt; let result = that.spanOverlapSwimming(rankEvent, isNew, occurrences, true, dataList, []);&lt;/P&gt;
&lt;P&gt;let eventList = that.selectedSlotEvent;&lt;BR /&gt; that.selectedSlotEvent = result.lastAddedEvent;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt; that.requestEnd();&lt;BR /&gt; }, 0);&lt;BR /&gt; }&lt;BR /&gt; });&lt;BR /&gt; $("#failBlock").unbind().click(function () {&lt;BR /&gt; //var revert=true;&lt;BR /&gt; //that.scheduleService.revertEvent(revert);&lt;BR /&gt; if (clickEvent) {&lt;BR /&gt; clickEvent = false;&lt;/P&gt;
&lt;P&gt;if (that.selectedSlotEvent[0])&lt;BR /&gt; that.editEvent(that.selectedSlotEvent[0]);&lt;BR /&gt; else&lt;BR /&gt; that.editEventEmty({})&lt;/P&gt;
&lt;P&gt;dialog.close();&lt;BR /&gt; }&lt;BR /&gt; setTimeout(function () {&lt;BR /&gt; if ($('#tabClickCheck').text() == "1") {&lt;BR /&gt; $('#showDisplayName').focus();&lt;BR /&gt; $('#tabClickCheck').text('0');&lt;BR /&gt; }&lt;BR /&gt; }, 1000);&lt;BR /&gt; });&lt;BR /&gt; $("#sports").unbind().click(function () {&lt;BR /&gt; if (clickEvent) {&lt;BR /&gt; dialog.close();&lt;BR /&gt; that.requestStart();&lt;BR /&gt; setTimeout(function () {&lt;BR /&gt; var emptyOccurence = { "event": [], "index": [] }&lt;BR /&gt; clickEvent = false;&lt;BR /&gt; let slotAvailable = that.checkAvailabilityInsideOverlap(occurrences);&lt;BR /&gt; let occurenceEvent = { "event": [], "index": [] }&lt;BR /&gt; if (that.matchTimesWithOccurrence(rankEvent, occurrences)) {&lt;BR /&gt; that.timeSwimming(rankEvent, (new Date(slotAvailable.start)), (new Date(slotAvailable.end)), isNew, occurenceEvent, true, false);&lt;BR /&gt; } else if (that.matchStartTimeWithOccurrence(rankEvent, occurrences)) {&lt;BR /&gt; let endTime = new Date(occurrences[0].start);&lt;BR /&gt; let clonedEnd = new Date(occurrences[0].clonedStart);&lt;BR /&gt; clonedEnd.setHours(endTime.getHours(), endTime.getMinutes(), endTime.getSeconds());&lt;BR /&gt; let clonedStart = new Date(clonedEnd);&lt;BR /&gt; clonedStart.setTime(clonedStart.getTime() - rankEvent.eventDuration);&lt;BR /&gt; rankEvent.eventActualStart = clonedStart;&lt;BR /&gt; rankEvent.eventActualEnd = clonedEnd;&lt;BR /&gt; let searchDomain = that.searchDomainCheck(rankEvent, rankEvent.event, that._schedulerDataSource._data, true);&lt;BR /&gt; if (searchDomain.searchDateFallCheck) {&lt;BR /&gt; that.spanStartTimeOverlapSwimming(rankEvent, occurrences[0], isNew, occurenceEvent, true, dataList, []);&lt;BR /&gt; //that.startTimeOverlapSwimming(rankEvent,occurrences[0].start,isNew,emptyOccurence,false);&lt;BR /&gt; } else {&lt;BR /&gt; that.singleButtonDialog("You cannot perform this action. Please refine your search in order to display more data");&lt;BR /&gt; }&lt;BR /&gt; } else {&lt;BR /&gt; if (slotAvailable.isAvailable) {&lt;BR /&gt; let spanList = that.getSpanEventList(dataList, rankEvent.event);&lt;BR /&gt; if (spanList.length != 1) {&lt;BR /&gt; let sortData = that.arrangeArrayUsingStartDateTime(spanList);&lt;BR /&gt; let spanPosition = sortData.indexOf(rankEvent.event);&lt;BR /&gt; sortData.splice(spanPosition, 1);&lt;BR /&gt; that.removeItems(sortData, false);&lt;BR /&gt; rankEvent.event.isForward = false;&lt;BR /&gt; rankEvent.event.isReverse = false;&lt;BR /&gt; // change need to do undo redo&lt;BR /&gt; }&lt;BR /&gt; that.timeSwimming(rankEvent, (new Date(slotAvailable.start)), (new Date(slotAvailable.end)), isNew, occurenceEvent, true, false);&lt;BR /&gt; } else {&lt;/P&gt;
&lt;P&gt;let startTime = new Date(occurrences[occurrences.length - 1].end);&lt;BR /&gt; let clonedStart = new Date(rankEvent.eventActualStart);&lt;BR /&gt; clonedStart.setHours(startTime.getHours(), startTime.getMinutes(), startTime.getSeconds());&lt;BR /&gt; let clonedEnd = new Date(clonedStart);&lt;BR /&gt; clonedEnd.setTime(clonedStart.getTime() + rankEvent.eventDuration);&lt;BR /&gt; rankEvent.eventActualStart = clonedStart;&lt;BR /&gt; rankEvent.eventActualEnd = clonedEnd;&lt;BR /&gt; let searchDomain = that.searchDomainCheck(rankEvent, rankEvent.event, that._schedulerDataSource._data, true);&lt;BR /&gt; if (searchDomain.searchDateFallCheck) {&lt;BR /&gt; that.spanEndTimeOverlapSwimming(rankEvent, occurrences[occurrences.length - 1], isNew, occurenceEvent, true, dataList, []);&lt;BR /&gt; //endTimeOverlapSwimming //spanEndTimeOverlapSwimming&lt;BR /&gt; //that.endTimeOverlapSwimming(rankEvent,occurrences[occurrences.length-1].end,isNew,occurenceEvent,true);&lt;BR /&gt; } else {&lt;BR /&gt; that.singleButtonDialog("You cannot perform this action. Please refine your search in order to display more data");&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; //that.getScheduler().select(null);&lt;BR /&gt; $('div[data-uid="' + rankEvent.event.uid + '"]').addClass('k-state-selected');&lt;BR /&gt; let eventList = that.selectedSlotEvent;&lt;/P&gt;
&lt;P&gt;that.requestEnd();&lt;BR /&gt; }, 0);&lt;BR /&gt; }&lt;BR /&gt; setTimeout(function () {&lt;BR /&gt; if ($('#tabClickCheck').text() == "1") {&lt;BR /&gt; $('#showDisplayName').focus();&lt;BR /&gt; $('#tabClickCheck').text('0');&lt;BR /&gt; }&lt;BR /&gt; }, 1000);&lt;/P&gt;
&lt;P&gt;});&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt; }&lt;/P&gt;</description>
    <pubDate>Fri, 05 Jan 2018 20:46:44 GMT</pubDate>
    <dc:creator>CommunityUser</dc:creator>
    <dc:date>2018-01-05T20:46:44Z</dc:date>
    <item>
      <title>AppDynamics  JS Agent API</title>
      <link>https://community.splunk.com/t5/Splunk-AppDynamics/AppDynamics-JS-Agent-API/m-p/723539#M3773</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I am trying to achieve the below tasks. Can you tell me how to do it&lt;/P&gt;
&lt;P&gt;- Fire AppDyanmics JS API to report key metrics for each of the events&lt;BR /&gt;- View and organize metrics on AppDyanmics Dashboard&lt;BR /&gt;- providing code snippet below&lt;BR /&gt;- can you tell me how to fir it&lt;/P&gt;
&lt;P&gt;passOrfailPopup(rankEvent, occurrences, isSwimming, isNew, dataList) {&lt;BR /&gt; let passOrDelete = "";&lt;BR /&gt; let that = this;&lt;BR /&gt; let clickEvent = true;&lt;BR /&gt; if (isSwimming) {&lt;BR /&gt; $("#blockChangePopWith").find('.kendoContent').text("Overlap exists. Please confirm.");&lt;BR /&gt; $("#sports").show();&lt;BR /&gt; passOrDelete = "Delete";&lt;BR /&gt; } else {&lt;BR /&gt; $("#blockChangePopWith").find('.kendoContent').text("Are you sure you want pass show(s)?");&lt;BR /&gt; $("#sports").hide();&lt;BR /&gt; passOrDelete = "pass";&lt;BR /&gt; }&lt;BR /&gt; $("#blockChangePopWith" + ' .kPopUpTitle').text('Scheduling');&lt;BR /&gt; let dialog = $("#blockChangePopWith").data("kendoWindow").center().open();&lt;BR /&gt; let occurrencesCount = that.spanFilterCount(occurrences);&lt;/P&gt;
&lt;P&gt;$("#passOK").text(passOrDelete + " (" + occurrencesCount + ")");&lt;BR /&gt; $("#passOK").unbind().click(function () {&lt;BR /&gt; if (clickEvent) {&lt;BR /&gt; dialog.close();&lt;BR /&gt; that.requestStart();&lt;BR /&gt; setTimeout(function () {&lt;/P&gt;
&lt;P&gt;var emptyOccurence = { "event": [], "index": [] }&lt;BR /&gt; clickEvent = false;&lt;BR /&gt; that.spanRemoveFind(occurrences);&lt;BR /&gt; let occurenceEventList = that.getSourceEvents(occurrences);&lt;BR /&gt; that.removeItems(occurrences, false);&lt;BR /&gt; //that.timeSwimming(rankEvent,(new Date(rankEvent.start)),(new Date(rankEvent.end)),isNew,occurenceEventList,true);&lt;BR /&gt; let result = that.spanOverlapSwimming(rankEvent, isNew, occurrences, true, dataList, []);&lt;/P&gt;
&lt;P&gt;let eventList = that.selectedSlotEvent;&lt;BR /&gt; that.selectedSlotEvent = result.lastAddedEvent;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt; that.requestEnd();&lt;BR /&gt; }, 0);&lt;BR /&gt; }&lt;BR /&gt; });&lt;BR /&gt; $("#failBlock").unbind().click(function () {&lt;BR /&gt; //var revert=true;&lt;BR /&gt; //that.scheduleService.revertEvent(revert);&lt;BR /&gt; if (clickEvent) {&lt;BR /&gt; clickEvent = false;&lt;/P&gt;
&lt;P&gt;if (that.selectedSlotEvent[0])&lt;BR /&gt; that.editEvent(that.selectedSlotEvent[0]);&lt;BR /&gt; else&lt;BR /&gt; that.editEventEmty({})&lt;/P&gt;
&lt;P&gt;dialog.close();&lt;BR /&gt; }&lt;BR /&gt; setTimeout(function () {&lt;BR /&gt; if ($('#tabClickCheck').text() == "1") {&lt;BR /&gt; $('#showDisplayName').focus();&lt;BR /&gt; $('#tabClickCheck').text('0');&lt;BR /&gt; }&lt;BR /&gt; }, 1000);&lt;BR /&gt; });&lt;BR /&gt; $("#sports").unbind().click(function () {&lt;BR /&gt; if (clickEvent) {&lt;BR /&gt; dialog.close();&lt;BR /&gt; that.requestStart();&lt;BR /&gt; setTimeout(function () {&lt;BR /&gt; var emptyOccurence = { "event": [], "index": [] }&lt;BR /&gt; clickEvent = false;&lt;BR /&gt; let slotAvailable = that.checkAvailabilityInsideOverlap(occurrences);&lt;BR /&gt; let occurenceEvent = { "event": [], "index": [] }&lt;BR /&gt; if (that.matchTimesWithOccurrence(rankEvent, occurrences)) {&lt;BR /&gt; that.timeSwimming(rankEvent, (new Date(slotAvailable.start)), (new Date(slotAvailable.end)), isNew, occurenceEvent, true, false);&lt;BR /&gt; } else if (that.matchStartTimeWithOccurrence(rankEvent, occurrences)) {&lt;BR /&gt; let endTime = new Date(occurrences[0].start);&lt;BR /&gt; let clonedEnd = new Date(occurrences[0].clonedStart);&lt;BR /&gt; clonedEnd.setHours(endTime.getHours(), endTime.getMinutes(), endTime.getSeconds());&lt;BR /&gt; let clonedStart = new Date(clonedEnd);&lt;BR /&gt; clonedStart.setTime(clonedStart.getTime() - rankEvent.eventDuration);&lt;BR /&gt; rankEvent.eventActualStart = clonedStart;&lt;BR /&gt; rankEvent.eventActualEnd = clonedEnd;&lt;BR /&gt; let searchDomain = that.searchDomainCheck(rankEvent, rankEvent.event, that._schedulerDataSource._data, true);&lt;BR /&gt; if (searchDomain.searchDateFallCheck) {&lt;BR /&gt; that.spanStartTimeOverlapSwimming(rankEvent, occurrences[0], isNew, occurenceEvent, true, dataList, []);&lt;BR /&gt; //that.startTimeOverlapSwimming(rankEvent,occurrences[0].start,isNew,emptyOccurence,false);&lt;BR /&gt; } else {&lt;BR /&gt; that.singleButtonDialog("You cannot perform this action. Please refine your search in order to display more data");&lt;BR /&gt; }&lt;BR /&gt; } else {&lt;BR /&gt; if (slotAvailable.isAvailable) {&lt;BR /&gt; let spanList = that.getSpanEventList(dataList, rankEvent.event);&lt;BR /&gt; if (spanList.length != 1) {&lt;BR /&gt; let sortData = that.arrangeArrayUsingStartDateTime(spanList);&lt;BR /&gt; let spanPosition = sortData.indexOf(rankEvent.event);&lt;BR /&gt; sortData.splice(spanPosition, 1);&lt;BR /&gt; that.removeItems(sortData, false);&lt;BR /&gt; rankEvent.event.isForward = false;&lt;BR /&gt; rankEvent.event.isReverse = false;&lt;BR /&gt; // change need to do undo redo&lt;BR /&gt; }&lt;BR /&gt; that.timeSwimming(rankEvent, (new Date(slotAvailable.start)), (new Date(slotAvailable.end)), isNew, occurenceEvent, true, false);&lt;BR /&gt; } else {&lt;/P&gt;
&lt;P&gt;let startTime = new Date(occurrences[occurrences.length - 1].end);&lt;BR /&gt; let clonedStart = new Date(rankEvent.eventActualStart);&lt;BR /&gt; clonedStart.setHours(startTime.getHours(), startTime.getMinutes(), startTime.getSeconds());&lt;BR /&gt; let clonedEnd = new Date(clonedStart);&lt;BR /&gt; clonedEnd.setTime(clonedStart.getTime() + rankEvent.eventDuration);&lt;BR /&gt; rankEvent.eventActualStart = clonedStart;&lt;BR /&gt; rankEvent.eventActualEnd = clonedEnd;&lt;BR /&gt; let searchDomain = that.searchDomainCheck(rankEvent, rankEvent.event, that._schedulerDataSource._data, true);&lt;BR /&gt; if (searchDomain.searchDateFallCheck) {&lt;BR /&gt; that.spanEndTimeOverlapSwimming(rankEvent, occurrences[occurrences.length - 1], isNew, occurenceEvent, true, dataList, []);&lt;BR /&gt; //endTimeOverlapSwimming //spanEndTimeOverlapSwimming&lt;BR /&gt; //that.endTimeOverlapSwimming(rankEvent,occurrences[occurrences.length-1].end,isNew,occurenceEvent,true);&lt;BR /&gt; } else {&lt;BR /&gt; that.singleButtonDialog("You cannot perform this action. Please refine your search in order to display more data");&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; }&lt;BR /&gt; //that.getScheduler().select(null);&lt;BR /&gt; $('div[data-uid="' + rankEvent.event.uid + '"]').addClass('k-state-selected');&lt;BR /&gt; let eventList = that.selectedSlotEvent;&lt;/P&gt;
&lt;P&gt;that.requestEnd();&lt;BR /&gt; }, 0);&lt;BR /&gt; }&lt;BR /&gt; setTimeout(function () {&lt;BR /&gt; if ($('#tabClickCheck').text() == "1") {&lt;BR /&gt; $('#showDisplayName').focus();&lt;BR /&gt; $('#tabClickCheck').text('0');&lt;BR /&gt; }&lt;BR /&gt; }, 1000);&lt;/P&gt;
&lt;P&gt;});&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt; }&lt;/P&gt;</description>
      <pubDate>Fri, 05 Jan 2018 20:46:44 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-AppDynamics/AppDynamics-JS-Agent-API/m-p/723539#M3773</guid>
      <dc:creator>CommunityUser</dc:creator>
      <dc:date>2018-01-05T20:46:44Z</dc:date>
    </item>
    <item>
      <title>Re: AppDynamics  JS Agent API</title>
      <link>https://community.splunk.com/t5/Splunk-AppDynamics/AppDynamics-JS-Agent-API/m-p/723540#M3774</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;

&lt;P&gt;For the description, it's unclear what you are trying to pass to eum as custom data. But What I can guess is that in an event you would like to pass a custom data to eum which you will like to later use&amp;nbsp;in your dashboard.&lt;/P&gt;

&lt;P&gt;To attach a custom data you will basically need to have a base page, ajax or virtual page event. Unless The custom data are attached to a request, so the event needs to be a&amp;nbsp;&lt;SPAN&gt;base page, ajax or virtual page event.&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;With JS API you can report an event as manually and then let the custom data configuration to attach the data to their specific custom events(raised via API).&lt;/P&gt;

&lt;P&gt;I am attaching a sample.html file which&amp;nbsp;creates a custom virtual page event and also associates a custom data to the event whenever&amp;nbsp;it triggered before reporting it to EUM collector.&lt;/P&gt;

&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Gaurav Soni&lt;/P&gt;</description>
      <pubDate>Tue, 09 Jan 2018 12:34:16 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-AppDynamics/AppDynamics-JS-Agent-API/m-p/723540#M3774</guid>
      <dc:creator>Gaurav_Soni</dc:creator>
      <dc:date>2018-01-09T12:34:16Z</dc:date>
    </item>
  </channel>
</rss>

