objectify-insight | #Analytics | Insight into your Google App Engine datastore costs

 by   objectify Java Updated: 3 years ago - Current License: No License

Download this library from

Build Applications

kandi X-RAY | objectify-insight REVIEW AND RATINGS

This library provides insight into your high-volume GAE datastore activity. It records read and write activity broken down by time, namespace, module, version, kind, operation, and query and aggregates this data into Google BigQuery. By aggregating at multiple levels, Insight scales to thousands of requests per second. Insight works well with Google App Engine applications that use Objectify, but (with some limitations) it can work with any application that uses the low level datastore API. Insight is a metrics collection system. It flows aggregated data into BigQuery in a format that should be useful to developers and system administrators. It does not provide a query interface to BigQuery.

kandi-support
Support

  • objectify-insight has a low active ecosystem.
  • It has 18 star(s) with 6 fork(s).
  • It had no major release in the last 12 months.
  • On average issues are closed in 32 days.
  • It has a neutral sentiment in the developer community.

quality kandi
Quality

  • objectify-insight has 0 bugs and 0 code smells.

security
Security

  • objectify-insight has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • objectify-insight code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.

license
License

  • objectify-insight does not have a standard license declared.
  • Check the repository for any license declaration and review the terms closely.
  • Without a license, all rights are reserved, and you cannot use the library in your applications.

build
Reuse

  • objectify-insight releases are not available. You will need to build from source code and install.
  • Build file is available. You can build the component from source.
  • objectify-insight saves you 1177 person hours of effort in developing the same functionality from scratch.
  • It has 2655 lines of code, 244 functions and 47 files with 0 % test coverage
  • It has low code complexity. Code complexity directly impacts maintainability of the code.
Top functions reviewed by kandi - BETA

kandi has reviewed objectify-insight and discovered the below as its top functions. This is intended to give you an instant insight into objectify-insight implemented functionality, and help decide if they suit your requirements.

  • Execute the given entities .
  • Upload a collection of buckets to a bigquery .
  • Adds the given bucket to the statistics .
  • Define the schema .
  • Execute one or more buckets .
  • Hashes a string .
  • Removes mutableEnhance from stack .
  • Adds multiple payload to the queue .
  • Merge the specified list of buckets into the bucket map .
  • Invokes the method

objectify-insight Key Features

Insight into your Google App Engine datastore costs

objectify-insight examples and code snippets

  • Design
  • Set up Queue
  • Set up Cron
  • Enable the servlets
  • Get an AsyncDatastoreService
  • Use Insight with Objectify
  • Collector
  • Clock
  • TablePicker
  • Puller
  • Codepointer
  • Limitations

Design

| uploaded                | codepoint                        | namespace  | module   | version | kind   | op     | query                          | time                    | reads | writes |
| ----------------------- | -------------------------------- | ---------- | -------- | ------- | ------ | ------ | ------------------------------ | ----------------------- | ----- | ------ |
| 2014-09-15 04:58:40 UTC | d41d8cd98f00b204e9800998ecf8427e | namespace2 | default  | v1      | Thing1 | QUERY  | SELECT * FROM Thing1 WHERE ... | 2014-09-15 04:58:40 UTC | 4     | 0      |	 
| 2014-09-15 04:58:40 UTC | 9e107d9d372bb6826bd81d3542a419d6 | namespace1 | deferred | v1      | Thing2 | DELETE |                                | 2014-09-15 04:58:40 UTC | 0     | 1      |	 
| 2014-09-15 04:58:40 UTC | e4d909c290d0fb1ca068ffaddf22cbd0 | namespace1 | default  | v2      | Thing1 | SAVE   |                                | 2014-09-15 04:58:40 UTC | 0     | 1      |

Set up Queue

<queue-entries>
	<queue>
		<name>insight</name>
		<mode>pull</mode>
	</queue>
</queue-entries>

Set up Cron

<cronentries>
	<cron>
		<url>/private/tableMaker</url>
		<description>Make sure we have enough tables for a week</description>
		<schedule>every 8 hours</schedule>
	</cron>
	<cron>
		<url>/private/puller</url>
		<description>Move all data to BQ</description>
		<schedule>every 1 minutes</schedule>
	</cron>
</cronentries>

Enable the servlets

serve("/private/tableMaker").with(GuiceTableMakerServlet.class);
serve("/private/puller").with(GuicePullerServlet.class);

Get an AsyncDatastoreService

AsyncDatastoreService raw = DatastoreServiceFactory.getAsyncDatastoreService();
Recorder recorder = injector.getInstance(Recorder.class);
AsyncDatastoreService tracksMetrics = new InsightAsyncDatastoreService(raw, recorder);

Use Insight with Objectify

	@Override
	protected AsyncDatastoreService createRawAsyncDatastoreService(DatastoreServiceConfig cfg) {
		AsyncDatastoreService raw = super.createRawAsyncDatastoreService(cfg);
		return new InsightAsyncDatastoreService(raw, recorder);
	}

Collector

Collector collector = injector.getInstance(Collector.class);
collector.setSizeThreshold(500);
collector.setAgeThresholdMillis(1000 * 30);

Clock

Clock clock = injector.getInstance(Clock.class);
clock.setGranularityMillis(1000 * 600);

TablePicker

TablePicker picker = injector.getInstance(TablePicker.class);
picker.setFormat(new SimpleDateFormat("'myprefix_'yyMMdd");

Puller

Puller puller = injector.getInstance(Puller.class);
puller.setBatchSize(50);
puller.setLeaseDurationSeconds(300);

Codepointer

codepointer.setStackProducer(new AdvancedStackProducer());

Limitations

PreparedQuery pq = ds.prepare(query);
List<Entity> entities = pq.asList(fetchOpts).asList();
int size = entities.size();

COMMUNITY DISCUSSIONS

No Community Discussions are available at this moment for objectify-insight.Refer to stack overflow page for discussions.

No Community Discussions are available at this moment for objectify-insight.Refer to stack overflow page for discussions.

Community Discussions, Code Snippets contain sources that include Stack Exchange Network

VULNERABILITIES

No vulnerabilities reported

INSTALL objectify-insight

If you use Guice, you may find it helpful to read the code at https://github.com/stickfigure/objectify-insight-example Guice is not required to use Insight, but it helps. This documentation assumes you will use Guice.
Add a pull queue named "insight" to your queue.xml:.
Add two entries to your cron.xml:.

SUPPORT

For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .

Implement objectify-insight faster with kandi.

  • Use the support, quality, security, license, reuse scores and reviewed functions to confirm the fit for your project.
  • Use the, Q & A, Installation and Support guides to implement faster.

Discover Millions of Libraries and
Pre-built Use Cases on kandi