Community Spring Cleaning week is here! Join your fellow Maveryx in digging through your old posts and marking comments on them as solved. Learn more here!

Alteryx Server Discussions

Find answers, ask questions, and share expertise about Alteryx Server.

Capturing Mongo Data In Real Time

mbarone
16 - Nebula
16 - Nebula

I have an app that we are releasing to a lot of users (more than ever before).  I have a separate module that will grab all the mongo "stuff" (user ID, user innerface questions, etc., etc.), so I have a listing of everything the user does in regard to their interaction with the app.  I was going to run it nightly to capture the day's activity.


BUT>>>>Then it occurred to me, that user can delete their workflow results in the Gallery, and that will erase all the mongo stuff. 


I see no way to NOT give them the option to delete - it's automatically there in the UI.

 

Anyone come across this yet, and if so, how did you solve it?

 

Thanks.

8 REPLIES 8
StephenR
Alteryx
Alteryx

You could chain the app and have the mongo info append to a yxdb (saved locally on the server) on every run.  Then you'll have an up to the minute view on what people are doing in a separate persistent file.

Regards,
Stephen Ruhl
Principal Customer Support Engineer

mbarone
16 - Nebula
16 - Nebula

Would that work though?  If 10 people just happen to run the app at the same time, it could possibly be the case that the YXMD to capture the mongo is running at the same time.  Can a YXMD be run at the same time for 10 (or however many) users?  

mbarone
16 - Nebula
16 - Nebula

Okay, so I have it set up where the once the app is done, an event fires off that runs the mongo capture module.  It works but it does not pick up that app that was JUST run.  If I run it again, then it gets the prior one, but not the one that current one.  It's always one run behind.

Any thoughts?  The event is configured to kick off after the app is complete.

StephenR
Alteryx
Alteryx

I don't know enough about how the MongoDB is set up, so my only thought is that the last run hasn't been committed when the capture workflow fires.  You could possibly add the Wait A Second macro from the CREW macro pack to put a little gap in there.  You would have to pass only 1 record through that tool so it would only wait once.  That's all that I can think of.

Regards,
Stephen Ruhl
Principal Customer Support Engineer

mbarone
16 - Nebula
16 - Nebula
No, that did not work. I have a 10 second delay on the mongo capturer module and it still does not capture the mongo data. Yet if I run the mongo module manually one second after the app completed in the gallery, it's fine.

mbarone
16 - Nebula
16 - Nebula
I'll email my service rep and see if he can find anything out. Hard to believe there's no way to automatically capture the mongo data at the time of run.
patrick_digan
17 - Castor
17 - Castor

@mbarone 2 quick thoughts:

1) It seems like the gallery logs would have the information you're looking for. When I filter my gallery logs to Location = Execute, this provided the userID and wizard values.

2) You could modify the js code for the Gallery to not let users delete their runs. If you want to try this route, I'd be happy to chat. It would be as simple as making a small change to the production.js file on the server. We've done a ton of modifications similar to this with our gallery. The only thing I don't like is that I have to redo the changes every time we upgrade our server. I've reduced it to just running a module that makes all the changes, but there's always the risk that some of the underlying code changes and messes with our updates.

mbarone
16 - Nebula
16 - Nebula

Thanks Patrick!  I would prefer to not mess with the js file if at all possible.  I looked through the log files (for example "Alteryx_Log_1500644786_1.log", but couldn't seem to find the wizard values.  Maybe we could chat on the phone this week.  Let me know what works for you; thanks!