something like statsd + graphite for Google App Engine? - python

I'm new to GAE and though I've looked around a fair bit, I haven't seen anything that mimics the functionality of statsd for GAE. Basically it would be nice to have something that you could easily set stats on and see the results graphed.
http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-everything/

One thing that seems to be difficult for statsd is handling unlimited amount of data. If you are interested in aggregate application statistics (across the entire dataset), I would suggest using the App Engine Log API or the App Engine Datastore in conjunction with Google BigQuery.
If you are interested specifically in analyzing App Engine logs, there are two projects that you can take a look at that helps move App Engine Log data into BigQuery:
log2bq, a Python app for GAE logs->BigQuery
Mache, a framework for pushing GAE log data into BigQuery (I know you are
asking about Python , but this one is written in Java)
For general stats collection and analysis, it's also possible to move Datastore data into BigQuery for analysis. The GAE team has recently started testing a feature that imports data from the experimental Datastore backup tool directly into BigQuery. Check this link for more info.
BigQuery doesn't provide visualization tools on it's own, but there are lots of ways to visualize BigQuery's query results, examples include:
Google Chart Tools API
Google Apps Script
Tableau
QlikView
There's a lot more on the BigQuery third party tools page.

Related

Does Google Cloud Storage work for the app I coded using PySimpleGUI?

Im developing a financial app using PySimpleGUI.
This is a desktop app, and will be sold publicly on my web page. I need a place to store my future clients data.
Does Google Cloud Storage work for a Desktop App, and is it safe? ( There will be sensitive financial data stored ). Also, multiple people will be editing the files simultaneously, will this cause the Google Cloud Storage to break?
Will you recommend me using something else for storing my data?
Thanks
I have tried connecting to SQL Server, but it only works for computers that are on the same network.
Your choice of components is way out of sync. My suggestion would be to first see what the actual requirements are. One small example would be how many people at a time will access the application, what data access controls will be present, how will you implement them? Can you use features of GCP or will you be developing your own? In any of the scenarios, are you involving data masking? What would be the design to expand the application in long run, etc. etc. Also a small disclaimer, the above queries have barely scratched the surface of the complexities involved in designing such data systems.
Once done, go through the list of tools available in GCP. See, what fits and how an efficient chain can be established.
Also, connecting to GCP via python works anywhere depending on how you setup the environment.

Serve streaming video in Google App Engine

I'm building a small educational web application. Along with other features like discussion forums, registered users will be able to view streaming videos. I'll be using Google App Engine's webapp2 framework for back-end development (with python). I want to specifically ask that how can I integrate video streaming into my application? I'm fairly new to web development and have a basic working knowledge of App Engine. I'll be using Google's Datastore to store all the app's data, but where do I store my videos that the app serves to users? I don't want to make the video content publicly available (e.g. YouTube), so what's the way to go?
I'm aware that GAE's Blobstore is dedicated to serving large files (e.g. videos) so will it be appropriate for this purpose? What are some other options?
Yes, Blobstore is fine. You can also use Google Cloud Storage, either directly or through the Blobstore API
Plenty of related Q&As to study, many contain code snippets: https://stackoverflow.com/search?q=[google-app-engine]+video+streaming
.

How to access app engine data model from desktop python application?

I am attempting to create a python application on a Raspberry Pi that can access data stored in a db model on an App Engine application. Specifically the latest entry in the data store.
I have no experience doing this type of remote data access but have a fair bit of experience with App Engine and Python.
I have found very little that I understand on this subject of remote data access.
I would like to access the data store directly, not text on a web page like this.
ProtoRPC kind of looks like it may work but Im not familiar with it and it looks like it is pretty involved when I just need to access a few strings.
What would make the most sense to accomplish this? If an example is easy to provide I would appreciate it.
What you looking for is the appengine remote api.
https://cloud.google.com/appengine/docs/python/tools/remoteapi
Google App Engine doesn't allow direct access to it's databases from your local python script. Instead, only an application hosted on App engine's server can access that data for your application.
Essentially, you're looking for a Google App Engine compatible, automatic, Restful API. Several exist, and have been discussed here. YMMV with the various frameworks that are discussed there.

is it possible to share a datastore between multiple GAE applications

I like to work with data saved in one GAE application in other GAE applications.
Basically share the datastore between multiple web applications in Google App Engine (Python) Development and Production.
Also if possible with:
http://localhost:####/_ah/admin/datastore
I like to view data in other applications not runnings and/or running on one screen?
Thanks for the help!
Nope, datastores are totally contained within the application. There is no direct sharing of data from one app to another.
You could however expose a web service to make data from one application available to another, using REST for example.
I guess the core problem here is that you would like to share the data between two applications hosted on GAE. There are two ways to do that.
You could use Google Cloud Datastore to store the information. This gives you more flexibility as you can have different services accessing datastore. You could even have something running on google compute engine and communicating with datastore.
Use google appengine modules. All modules share the same datastore. In your case each module could be a different application.
Hope this helps.
No, a datastore can only be accessed by one application (but that app can serve up multiple sites).
If you want Google to allow multiple applications to directly access the same datastore then you should star this issue:
http://code.google.com/p/googleappengine/issues/detail?id=1300
Unfortunately the way this issue is written is a bit ambiguous, but I take it to mean 'multiple applications' rather then 'multiple accounts'.
FWIW, you can deploy an application with another version and language - but with the same id, and be able to access its datastore concurrently

Quickbooks integration: IPP/IDS: can these by used for actual data exchange?

Poking around options for integrating an online app with Quickbooks, I've made a lot of headway with QBWC, but it's fairly ugly. From an end user perspective the usability of QBWC is pretty low.
Intuit is now pushing Intuit Partner Platform (IPP) and Intuit Data Services (IDS). I can't quite figure out what these are about:
Is IPP limited to using Flex, or can it work with existing web apps?
Are there APIs for actual data exchange? Is it possible to interact with desktop Quickbooks using IPP or IDS?
If there is sample code, particularly in Python, some pointers would be great.
Is IPP limited to using Flex, or can it work with existing web apps?
It is not limited to Flex. You can use IPP/IDS from any web application, as long as you federate your application (allow logins using SAML via workplace.intuit.com).
There are two "types" of IPP applications:
Native apps Native applications are applications written in Flex which utilize the Flex bindings for IPP. These applications run on Intuit's servers.
Federated apps Federated applications are applications written in your language of choice, running on your servers, which utilize the language bindings of your choice to talk to IPP. All of the communication with IPP is via HTTP XML requests, so pretty much any language out there can talk to IPP without any problems. You'll need to implement a SAML gateway which allows your users to log in via workplace.intuit.com.
Are there APIs for actual data exchange?
Yes. IPP is actually made of up two parts that both provide different sorts of data exchange.
IPP core stuff This involves user management, roles/permissions, access to QuickBase data stores, etc.
IDS (Intuit Data Services) This involves actually exchanging data with QuickBooks. Right now, a subset of QuickBooks data is supported, but Intuit is rapidly adding support for accessing more data within QuickBooks. You can add/modify/delete/query QuickBooks data and the data is automatically synced back to the end-users QuickBooks file.
Is it possible to interact with desktop Quickbooks using IPP or IDS?
That depends on what you mean by "interact". Yes, you can exchange data with their QuickBooks data file. No, you can't do things like automatically open up a particular window within QuickBooks or something like that.
If there is sample code, particularly in Python, some pointers would be great.
There are many open-source IPP DevKits on code.intuit.com that should be helpful. In particular, you'll probably want to check out this one:
Python DevKit
You'll also need to implement a SAML gateway for authentication, and there is sample code for that as well:
SAML Gateways
I'm the project admin for the QuickBooks PHP DevKit: QuickBooks PHP DevKit
There's a ton of additional information on the code.intuit.com website and tons of additional technical documentation on IPP/IDS with Federated applications on developer.intuit.com.

Categories