What Madhukar is trying to do seems totally reasonable.  As an
alternative to Bryan's proposal what do you all think about updating
the behavior of AttributesToJSON to allow the user to suggest the type
information they would like for a given attribute?  It's default
behavior is as is which is it will encode it as a string but I'm
suggesting the user be able to list certain attribute names as dynamic
properties and their desired serialized type as the value of that
property.  So for instance he could add a dynamic property to
AttributesToJSON which would be

  property name: rt_firstbyte
  property value: Integer

If any of the supplied type hints result in conversion failures then
we route to failure.

Thanks
Joe

On Fri, Mar 25, 2016 at 12:59 PM, Bryan Bende <[email protected]> wrote:
> Depending how many attributes you are dealing with, a possible work around
> could be to construct the JSON with a ReplaceText text processor.
>
> If you have ReplaceText after your UpdateAttribute, you could set the
> Replacement Value to a String like:
>
> { "rt_firstbyte" : ${http.param.t_resp},  "rt_lastbyte" :
> ${http.param.t_page}, "rt_loadtime" :  ${http.param.t_done} }
>
> In the long-term, maybe AttributesToJson could follow a convention where it
> looks for optional attributes that have the same name as another attribute,
> but end with have ".type" ?
>
> So in your example there would be:
>
> rt_firstbyte ${http.param.t_resp}
> rt_firstbyte.type int
>
> If it doesn't find a type attribute then it defaults to String as it does
> today.
> Just an idea of how we can provide type information, I'm sure there are
> other options too.
>
> -Bryan
>
> On Fri, Mar 25, 2016 at 12:07 PM, Madhukar Thota <[email protected]>
> wrote:
>>
>> Joe,
>>
>> I attached the screenshot for UpdateAttributes and AttributesToJson.
>> Please let me know if this is not something your are looking for.
>>
>> On Fri, Mar 25, 2016 at 11:58 AM, Joe Witt <[email protected]> wrote:
>>>
>>> Ok and can you share the config settings you have in Attributes to
>>> JSON  at this time?  We do need to make changes for this probably but
>>> want to understand what will be a good path forward.
>>>
>>> On Fri, Mar 25, 2016 at 9:49 AM, Madhukar Thota
>>> <[email protected]> wrote:
>>> > Hi Joe,
>>> >
>>> > In my UpdateAtrribute, i am converting the  string values to Number
>>> > like
>>> > this:
>>> >
>>> > rt_firstbyte ${http.param.t_resp:toNumber()}
>>> > rt_lastbyte  ${http.param.t_page:toNumber()}
>>> > rt_loadtime  ${http.param.t_done:toNumber()}
>>> >
>>> > when i pass this attribute to AttributeToJson processor, the type
>>> > should be
>>> > properly serialized but here is what i am getting from  AttributeToJson
>>> > processor
>>> >
>>> >
>>> > {"rt_loadtime":"260","rt_firstbyte":"20","referrer":"http://localhost:63342/Beacon/test.html","rt_lastbyte":"240"}
>>> >
>>> > This what i expect
>>> >
>>> >
>>> > {"rt_loadtime":260,"rt_firstbyte":20,"referrer":"http://localhost:63342/Beacon/test.html","rt_lastbyte":240}
>>> >
>>> > Thanks
>>> >
>>> > On Fri, Mar 25, 2016 at 10:47 AM, Joe Witt <[email protected]> wrote:
>>> >>
>>> >> Chase,
>>> >>
>>> >> To unsubscribe send an e-mail here [email protected]
>>> >>
>>> >> Madhukar,
>>> >>
>>> >> As Bryan mentioned attributes are always serialized as Strings.  Their
>>> >> type is really a function of when they are being evaluated/used.  Can
>>> >> you describe a bit more about what you'd like AttributesToJson to do
>>> >> with a given attribute that is of type Int/Long/etc..?
>>> >>
>>> >> Thanks
>>> >> Joe
>>> >>
>>> >>
>>> >>
>>> >> On Fri, Mar 25, 2016 at 8:01 AM, Chase Cunningham <[email protected]>
>>> >> wrote:
>>> >> > unsubscribe
>>> >> >
>>> >> >
>>> >> > On 3/25/16 9:01 AM, Madhukar Thota wrote:
>>> >> >
>>> >> > Any Other ways to achieve this?
>>> >> >
>>> >> > On Thu, Mar 24, 2016 at 4:48 PM, Bryan Bende <[email protected]>
>>> >> > wrote:
>>> >> >>
>>> >> >> I think the problem is that all attributes are actually Strings
>>> >> >> internally, even after calling toNumber() that is only temporary
>>> >> >> while
>>> >> >> the
>>> >> >> expression language is executing.
>>> >> >>
>>> >> >> So by the time it gets to AttributesToJson it doesn't have any
>>> >> >> information
>>> >> >> about the type of each attribute and they all end up as Strings. I
>>> >> >> think we
>>> >> >> would have to come up with a way to pass some type information
>>> >> >> along to
>>> >> >> AttributesToJson in order to get something other than Strings.
>>> >> >>
>>> >> >> -Bryan
>>> >> >>
>>> >> >>
>>> >> >> On Thu, Mar 24, 2016 at 3:30 PM, Madhukar Thota
>>> >> >> <[email protected]>
>>> >> >> wrote:
>>> >> >>>
>>> >> >>> Hi i am trying to convert string value to integer in
>>> >> >>> UpdateAtrributes
>>> >> >>> using toNumber like this
>>> >> >>>
>>> >> >>>
>>> >> >>> ${http.param.t_resp:toNumber()}  where http.param.t_resp = "132"
>>> >> >>>
>>> >> >>> but when the fileattribute pushed to Attributetojson processor , i
>>> >> >>> am
>>> >> >>> stilling seeing it as string. Am i am doing something wrong? and
>>> >> >>> also
>>> >> >>> how
>>> >> >>> can i convert string to float?
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>>
>>> >> >>
>>> >> >
>>> >> >
>>> >> > --
>>> >> > Dr. Chase C Cunningham
>>> >> > CTRC (SW) USN Ret.
>>> >> > The Cynja LLC Proprietary Business and Technical Information
>>> >> > CONFIDENTIAL TREATMENT REQUIRED
>>> >
>>> >
>>
>>
>

Reply via email to