Posts

Thank you!

2020 was a special year to say the least. All the more reason to say thank you, dear customers, partners and friends for your loyalty, your ideas and many great (virtual) talks!

As in the years before, we decided to donate instead of writing greeting cards and really hope that catches everyone’s holiday spirit.

All Tideways employees could chose their own purpose and so we donated 250 € each for:

  • ZeSaBo: The charitable Central Warehouse for Donations in Bonn (ZeSaBo) accepts donations and makes them available free of charge to private and institutional customers who care for people in need.
  • Bonner Tafel: The Bonner Tafel is a charitable organziation that saves food and distributes it to people in need.
  • Brot für die Welt: Bread for the World is the globally active development and relief agency of the Protestant Churches in Germany. All across the globe, they empower the poor and marginalised to improve their living conditions.
  • Fistula e.V.: This charitable organization stands up for womens health in developing countries. They support projects and organizations in Uganda and Ethiopia that care for prevention, treatment and re-integration of women with birth-injuries.
  • Save the Children: Save the Children, the world’s largest charitable organization for children’s rights, does whatever it takes — every day and in times of crisis — to give children a healthy start in life, the opportunity to learn and protection from harm.
  • Amnesty International: Amnesty International is a global movement of more than 10 million people who take injustice personally. They are campaigning for a world where human rights are enjoyed by all.
  • WEISSER RING: WEISSER RING is the only nationwide active victim support organisation in Germany. They are independent from state funding and are committed to help victims of crime.

DANKESCHÖN

2020 war ein außergewöhnliches Jahr, keine Frage! Umso mehr möchten wir uns bei Euch, liebe Kunden, Partner und Freunde, bedanken für Eure Treue, Eure Ideen und viele tolle (virtuelle) Gespräche!

Wie schon in den vergangenen Jahren haben wir uns auch 2020 entschieden, zu Weihnachten anstelle von Grußkarten zu spenden und hoffen, dass das auch in Eurem Sinne ist.

Jede/r Mitarbeiter/in von Tideways konnte einen eigenen Spendenzweck auswählen und so haben wir jeweils 250 € gespendet an:

  • ZeSaBo: Das ZeSaBo übernimmt ehrenamtlich die logistische Abwicklung von Sachspenden in Bonn zugunsten von Geflüchteten, Obdachlosen und Hilfsbedürftigen.
  • Bonner Tafel: Die Bonner Tafel ist ein gemeinnütziger Verein, der sich zur Aufgabe gemacht hat, Lebensmittel zu retten und an bedürftige Bürger zu verteilen.
  • Brot für die Welt: Brot für die Welt ist ein weltweit tätiges Entwicklungswerk der evangelischen Kirchen in Deutschland, das armen und ausgegrenzten Menschen hilft, aus eigener Kraft ihre Lebenssituation zu verbessern.
  • Fistula e.V.: Der gemeinnützige Verein Fistula e.V. setzt sich für Frauengesundheit in Entwicklungsländern ein, unterstützt werden Organisationen und Projekte, die sich ganzheitlich für Prävention, Therapie und Re-Integration von Frauen mit Geburtsverletzungen engagieren.
  • Save the Children: Save the Children ist die größte unabhängige Kinderrechtsorganisation der Welt und setzt sich für die Rechte aller Kinder auf Gesundheit und Überleben, Schule und Bildung sowie Schutz vor Gewalt und Ausbeutung ein.
  • Amnesty International: Amnesty International ist die weltweit größte Bewegung, die für die Menschenrechte eintritt. Amnesty ist unabhängig von Regierungen, Parteien, Ideologien, Wirtschaftsinteressen und Religionen. Die Kampagnen und Aktionen basieren auf den Grundsätzen der Allgemeinen Erklärung der Menschenrechte.
  • WEISSER RING: Der weiße Ring ist ein Verein zur Unterstützung von Kriminalitätsopfern und ihren Familien. Er bietet umfassende Hilfe für Menschen, die von Straftaten betroffen sind und setzt sich politisch für die Belange der Opfer ein und engagiert sich für die Kriminalprävention.

Autumn Launch: PHP 8, Autoloading Performance, Deprecation Tracking, Alerting Improvements

This autumn launch for Tideways includes new features and improvements that we worked on the last three months. These are (in no particular order):

  • Add support for PHP 8.0 and announce deprecation of PHP 5 support
  • Autoloading Performance in Layer Monitoring and Profiler
  • Deprecation Tracking
  • Improvements to Alerting: Filter for Service/Environments
  • Weekly Report: Make included services in weekly e-mail configurable
  • Add new “All” Services Filter-Option in Traces and Issues List
  • APCu Performance in Layer Monitoring and Profiler
  • New Apt and RPM Package Repository and Migration Timeline

Aside from this blog post explaining the new features in detail and the documentation, we also invite you to view the recording of our 30 minute webinar “New Features and Improvements launched in autumn 2020” scheduled for 25th November 2020, 15:00 Europe/Berlin.

Tideways Autumn 2020 Launch Webinar

To benefit from all these changes you need to upgrade your Tideways PHP Extension to version 5.3.4 and Tideways Daemon to version 1.6.24.

PHP 8 Support and PHP 5 Deprecation

The latest Tideways PHP extension version 5.3.4 (released today) includes support for the upcoming PHP 8.0 version, that will be released next week (November 26th 2020), and it includes support for the new Observer API for profiling right from the start.

In addition we are announcing to deprecate support for Tideways on all PHP 5 versions. All our release packages for Tideways will continue to include PHP 5 builds of Tideways, but only of the Tideways branch 5.2 (latest release as of today is 5.2.6). If necessary we will update PHP 5 builds with important bugfixes or security patches, but new features are not targeted for PHP 5 anymore.

Autoloading Performance

PHPs autoloading has a significant impact on performance of applications that you should be aware of. With this newest release of Tideways, we now track the autoloading performance impact in both monitoring and profiling. This means you can see the average time spent in autoloading aggregated by every minute in the layer tooltip:

And in the summary section of every collected trace:

As was the case before, you can then dive into a Callgraph to see where exactly time is spent during autoloading:

Deprecation Tracking

Tracking deprecations triggered in your PHP applications is now possible using Tideways. This hooks into PHPs E_USER_DEPRECATED and E_DEPRECATED error levels, collects and aggregates deprecations and shows them as a new issue type in the “Issues” screen of your Tideways projects.

With this feature it is easy to get an overview of all deprecations in PHP core or libraries that your application is causing, so that you can update the syntax and APIs before upgrading your dependencies.

Alerting Improvements: Fine-Grained Service and Environment Filters

Instead of having to select exactly one service and environment, configuration for notifications is now more flexible, allowing fine-grained control which services and environments should be included when checking for incident conditions.

This is achieved by adding a free-form filter syntax:

  • Using the star (*) is a wildcard matching all services or environments
  • Using the service or environment by name includes them in the notification checks
  • Prefixing a service or environment with ! excludes them from being checked.

Examples: “web worker” or “* !cli”

See the documentation for details

Include More Services in Weekly Report

Before this release, only the default service of a project was included in the weekly report e-mail. You can now configure which services to include and exclude from the weekly report on the “Services” configuration screen.

See the documentation for details

APCu Layer in Monitoring and Profiling

Usage of APCu is now tracked as a seperate layer in monitoring and profiling of Tideways. This gives you an average time spent in APCu and concrete times for individual traces.

View Traces and Issues from All Services

Previously you could only view traces and issues from one service of a project at a time. We have now added an option to show traces and issues from “All” services on a single screen.

New Package Repository

Our Debian and CentOS (RPM) package repositories have always been served directly from AWS S3 using open-source publishing tools and custom tools that we have added on top. To increase automation, convenience and security on our end, we recently migrated package publishing to Bintray, but are still mirroring packages from there to the old S3.

For now nothing has to change for you, but at the end of 2021 we will stop publishng to the S3 repository. Until then, you should perform these two steps:

  1. Trust our new GPG key for the [email protected] e-mail address
  2. Change the URL for package updating from the AWS S3 to the Bintray endpoint.

See more details in the documentation

Photo by Jeremy Thomas on Unsplash

Video Meetup on Tideways and WordPress with our hosting partner Seravo

Next week on Thursday June 4th 2020, 13:00 Berlin time our hosting partner Seravo will hold a video meetup on “Dismantle WordPress Performance Problems with Tideways“. Otto from Seravo and I will give you insights in using Tideways for WordPress sites.

If you want to participate make sure to sign up with name and e-mail address on this page.

With the latest release of the Tideways PHP extension 5.1.16 our WordPress support became even better. Tideways now provides detailed profiling insights into the WordPress admin area by instrumenting all WordPress Actions/Filters triggered during all admin requests.

Tideways sponsoring Unconference at the PHP Benelux 2020

At the end of the week one of our favorite PHP conferences is opening its doors – the PHP Benelux.

We love visiting the PHP Benelux, since it is a community conference organized by engaged members of the PHP community.

Third times a charm, Tideways is sponsoring the PHP Benelux unconference for another year.

Last year, we had a special give-away for the best talk of the unconference: a speaker’s slot at the main conference, including the whole package with hotel, travel and speaker’s dinner. Brent won with his talk about The Visual Perception of Code. Now this this year, Brent will present the same talk again on the main conference. Sounds interesting? His talk is saturday afternoon, right after the lunch break, in track C.

As in the previous year, the best talk of the PHP Benelux Unonf 2020 can win a spot at next year’s main stage. So, future conference speakers, seize the chance and use the unconference as platform of your choice: first time speaking or spontanous talks – everything is possible. If you are considering to talk for the first time, see our First-Time-Speaker Toolkit for helpful resources.

This year we also have a participation trophy for everyone, a limited sticker for your badge and laptop:

Past unconfernece speakers from the previous two years are welcome to get their stickers as well.

If you already know that you would like to give a talk, let us know – Benjamin will host the unconference and be your contact person if you want to save a slot at the unconf timetable.

Benjamin with the PHPBenelux Unconference Board in 2018Benjamin with the PHPBenelux Unconference Board in 2018

Of course, talks at the unconference can be spontanous. The unconference is by definition very flexible. You might think about the more or less spontaneously filled agenda, but there is more this format offers. You also can experiment with the length of your talks or use the unconference to not just talk to the audience, but rather with it, i.e. with discussions. Important to know: during each slot there will be space for 2 talks, each with 20-30 minutes time. The only limitation: your talk (presentation/discussion/performance…) should be interesting and useful for the auditorium.

So let us know, if you want to talk at the unconf (Tweet or DM @beberlei or send an e-mail. Of course you can do that spontaneously at the conference as well, but why not be the early bird?

If you have any questions – we are happy to help!

THANK YOU FOR 2019

A heartfelt “thank you” to you, dear customers, partners and friends! You made 2019 a very special year for us with lots of great talks, cooperations and especially ideas and inspirations.

Thank you for 2019Thank you for 2019

For the holidays, we decided to donate instead of writing greeting cards and really hope that catches everyone’s holiday spirit.

All Tideways employees could chose their own purpose and so we donated 200 € each for:

  • Amnesty International
  • Kinderhospiz Bethel (Children’s Hospice)
  • WWF (Stop Plastic Pollution of the Ocean)
  • Fistula e.V. (Help for Women with Birth Injuries in Ethiopia and Uganda)
  • Reporter ohne Grenzen (Reporters without Borders)

DANKESCHÖN

Ein herzliches Dankeschön an Euch, liebe Kunden, Partner und Freunde! Ihr habt das Jahr 2019 für uns zu einem ganz besonderen Jahr gemacht mit vielen tollen Gesprächen, Kooperationen und Ideen.

Zu Weihnachten haben wir uns entschieden, anstelle von Grußkarten zu spenden und hoffen, dass das auch in Eurem Sinne ist.

Jede/r Mitarbeiter/in von Tideways konnte einen eigenen Spendenzweck auswählen und so haben wir jeweils 200€ gespendet an:

  • Amnesty International
  • Kinderhospiz Bethel
  • WWF – Schützen Sie die Ozeane vor der Plastikflut
  • Fistula e.V. Hilfe für geburtsverletzte Frauen in Äthiopien und Uganda
  • Reporter ohne Grenzen

The Undercover ElePHPant Podcast

For a while we have considered on how to relaunch our efforts to bring you the best content on PHP performance, scaling and optimizations.

We are launching The Undercover ElePHPant: A podcast and article series on how to scale, optimize and run PHP applications. This will initially be 10 episodes and articles in its first season. Every two weeks we will interview an expert of the PHP community about a new topic that hopefully helps you run everything from small to large PHP applications in production reliably.

.

Listen to the Welcome Episode where our hosts Matthew Setter and Benjamin Eberlei introduce themselves and don’t forget to subscribe to the RSS feed, on Apple Podcasts or Spotify.

Use Tideways for applications of all sizes with the new Flex plan

The PHP community is large and diverse in their approach to build and run PHP applications. We have seen hundreds of small applications running on a handful of servers and one product running on multiple clusters and hundreds of servers across the globe. Still, we believe all PHP applications regardless of size benefit from monitoring, profiling and exception tracking functionality.

That is why we introduce a new Flex plan today starting at 69€ / month, to complement our existing pricing, and offer a high level of flexibility for everyone that wants to use Tideways.

As usual nothing changes for our existing customers and you can keep your current plans. Pricing per application is also still available for new customers.

Why we are adding Flex plans

For the last two years Tideways has been using a pricing based on the number of applications (or projects), with three different flavors “Basic”, “Standard” and “Pro” that are different in data retention, traces/minute limits and features. This works nicely for our customers with medium to large applications and provides a fair and predictable month over month price.

However, we quickly realized that medium to large applications don’t run in isolation.

There are a lot of small applications out there too, for example internal tools that support your product, WordPress blogs, CMS sites, playground projects. Agencies usually operate tens, if not hundreds of small applications for their many customers.

All of them need monitoring, profiling and exception tracking as well, but pricing individually at 89€+/month for each application turned out to be unrealistic value proposition.

Flex Plan with Request-Based Pricing

The new “Flex” Tideways plan includes unlimited applications, and is limited by a monthly PHP request limit across all Flex applications in your Tideways account. Flex includes the core functionality of Tideways suited for small applications, lower data retention and a small amount of slow traces/minute.

See the pricing page for a feature comparison between Flex (Request) and Application based pricing.

The Flex plan starts at 69€ / month for up to 5 million PHP requests across all applications combined. If you want to have a higher monthly PHP request limit, you can also upgrade to a Flex plan with 20 million PHP requests for 129€, or even 75 million PHP requests for 299€ / month.

Accounts with Mixed Request- and Application-based Pricing

Should your applications with the Flex plan grow larger and cause the monthly limit to be reached, you can always convert the ones with a high monthly PHP request volume to application based pricing with the existing Basic, Standard or Pro licenses. All Tideways accounts allow a mix of applications with Flex (Request) and application based pricing.

We have thought a while about this mixed pricing model, because offering two completely different approaches introduces some obvious complexity. Our previous plans offered just request-based or application based pricing and neither of them alone allows us to serve the diversity of companies in the PHP community well. This new model now offers the flexibility for small and larger companies and for agencies, e-commerce and product companies.

Do you have questions about our pricing? Please don’t hesitate to write us at [email protected] and we get back to you.

Tideways sponsoring Unconference 2019 at the 10th PHP Benelux

Only a few days to go and one of our favorite PHP conferences is opening its doors – the PHP Benelux. And it is the anniversary edition – 10 years PHP Benelux – can you believe it?

We love visiting the PHP Benelux, since it is a community conference organized by engaged members of the PHP community.

Tideways already sponsored the PHP Benelux unconference in 2018 and it was a huge success, so we will continue to support the unconference.

Last year, we had a special give-away for the best talk of the unconference: a speaker’s slot at the main conference, including the whole package with hotel, travel and speaker’s dinner. Jens Segers won this slot with his talk about JSON web tokens. Now this this year, Jens will present on the main stage and talk about the idea of building a digital ID card for authentification. Sounds interesting? His talk is saturday afternoon, right after the lunch break, in track C.

As in the previous year, the best talk of the PHP Benelux Unonf 2019 can win a spot at next year’s main stage. So, future conference speakers, seize the chance and use the unconference as platform of your choice: first time speaking or spontanous talks – everything is possible.

Benjamin with the PHPBenelux Unconference Board in 2018Benjamin with the PHPBenelux Unconference Board in 2018

If you already know that you would like to give a talk, let us know – Benjamin will host the unconference and be your contact persons if you want to save a slot at the unconf timetable. Of course, talks at the unconference can be spontanous. The unconference is by definition very flexible. You might think about the more or less spontaneously filled agenda, but there is more this format offers. You also can experiment with the length of your talks or use the unconference to not just talk to the audience, but rather with it, i.e. with discussions. Important to know: during each slot there will be space for 2 talks, each with 20-30 minutes time. The only limitation: your talk (presentation/discussion/performance…) should be interesting and useful for the auditorium.

So let us know, if you want to talk at the unconf (Tweet or DM @beberlei or send an e-mail. Of course you can do that spontaneously at the conference as well, but why not be the early bird?

If you have any questions – we are happy to help!

Adding Spryker Commerce Support

We are happy to announce that our latest version of the Tideways extension (v5.0.22) includes support for the Spryker E-Commerce Platform through fully automated instrumentation and hooks into the core of Spryker.

With the complexity of a large E-Commerce project, different channels, multiple language stores and landingpages for campaigns it is especially difficult to get a full view of the performance and errors from within your software as a project manager, developer or system administrator.

Tideways instrumentation automatically groups requests for either Zed (backend) and Yves (frontend) services and separatly tracks the performance for each Spryker Store so that you can excatly find out which store and page is slow.

Transaction/Endpoint names based on the different pages in Spryker are automatically detected and allow you to find out which pages of your e-commerce funnel need optimiziation.

With the weekly report you get all this performance information on Monday morning, including details about medium and long term trends of the performance.

Did you find a slow endpoint? With The Tideways Profiler you can immediately see the causes of slow pages looking at individual SQL, Redis or Elasticsearch queries, Propel ORM commands, Controllers or Twig Templates.

Tideways also integrates with the Spryker Vagrant VM to provide a unique out of the box experience for developers that can automatically view performance and profiling data on their development environment separated from the production data.

You can start a 30 days trial to test Tideways with your Spryker shop.

Tideways No. 5

A few weeks into year five of the Tideways project we are happy to announce the release of Tideways version 5, including large updates to all parts of the stack from PHP extension, daemon and the user-interface. Ladies and gentlemen, this is Tideways no. 5!

Source: Excerpt quoted from Mambo No.5 (A little bit of.) by Lou Bega (1999)Source: Excerpt quoted from Mambo No.5 (A little bit of.) by Lou Bega (1999)

For now the new version is only available when you change the package repository URLs to new endpoints, and on September 17th we will be pushing the version 5 release on the old repository as well so that automatic upgrades of your systems will pick it up.

New: Monitoring Performance of Downstream Databases, File I/O and Services

Tideways now collects more data in monitoring mode, and always capture the total performance of SQL, HTTP, Redis, Memcache, File I/O and other downstream services for monitoring purposes.

This unlocks a much requested feature to show the performance of all these layers directly in the monitoring chart of Tideways. With 100% of requests collecting this information with very low overhead, we can give you an accurate distribution of all requests to layers and capture the latency of every outlier.

The downstream service performance will be available on an application/service level in every plan, and if you upgrade to the new Pro plan every endpoint will have downstream layer monitoring data as well.

Read more: Blog post about downstream service performance

New: Memory Profiling

We finally added much requested memory profiling support both to the timeline and the callgraph profiling modes. First, you can see the memory amount that was allocated during the full execution of a selected timespan in the timeline profiler. Secondly, you can switch to Memory View and see a timeline of the allocated memory from 0 to peak memory. Thirdly, the callgraph profiler can now show the allocated memory of each and every function call.

New: Simpler and Better Transaction Naming

With the old versions of Tideways you had to configure the tideways.framework INI setting or call a custom function to name your transactions. Starting with version 5, we automatically detect the framework for you and if you aren’t using one, then we will use the basename of SCRIPT_FILENAME instead of grouping everything into a single, undifferentiated “default” transaction as before. This helps alot with WordPress applications for example, where the admin actions are mostly controlled from different scripts.

New PHP Extension v5.0

All these features are only possible because of our new version 5 of the PHP extension – rewritten from scratch and not based on the original XHProf codebase anymore. Designed specifically around the new PHP 7 Zend Engine it achieves a reduction in overhead. Of course PHP 5.3 – 5.6 are also still supported by this new version.

We moved to an entirely new datastructure that is better suited for future improvements and makes it easier to support new frameworks and libraries and potentially new languages in the future. You will see this directly when looking at traces, where we now group framework spans and events together more closely. In some cases such as Symfony we are also able to store the duration of listeners in addition to events from now on.

From a configuration perspective the extension now works with better defaults and improved batching and truncating in case of large traces and an abort condition that watch the PHP memory limit, so that Tideways always automatically deactivates detailed tracing if the request goes above 90% of the memory limit (configurable).

As for backwards compatibility version 5 is mostly a drop in replacement. Unfortunately, there are two necessary BC breaks in the extension and a few deprecated features that got removed.

Read More: BC Breaks and Removals in the new PHP Extension

What’s next?

This release includes a large amount of new features and changes to existing functionality, but we couldn’t include everything that we wanted without delaying for several additional months. Stay tuned in the next months to see updates on long term requested features such as trace triggering improvements, weekly report, alerting and more thorough usage of the downstream service/layering data.

First-Time-Speaker-Toolkit

Hey there! Perhaps you read our first post about the unconference at the PHP Benelux? Then you know that we explicitly are encouraging first-time-speakers to give a talk at the unconference next weekend.

Here is our promise: it will be worth being brave! Because one thing is sure: no one will become a great speaker without ever speaking.

To support and encourage you, we prepared a “first time speaker toolkit” for you.

1) What to talk about?!

Are you worried you might not have anything to talk about that might be interesting to an audience? Well, we are convinced you have plenty to talk about!

Ideas for your talk might be:

  • side projects
  • open source projects

Just imagine you enter your preferred means of public transportation, let’s say a bus, and if we count all people in there, you would know more about a specific subject than your average co-travelers? This specific subject is somehow related to PHP? Voila – here is your talk idea!

Regarding the “how”, please feel free. The format is flexible so talk/ discuss/ present accordingly to your idea and preparation.

2) be prepared

Sounds strange – why be prepared if the system of the unconference invites exactly that: spontaneous talks. Well, the schedule is not ready beforehand, but you should be!

Preparation and practice might give you just the extra boost in confidence you need.

Of course, the unconference is open for spontaneous ideas. If an idea comes to you at the conference that is perfect, that’s what unconferences are for. Nonetheless, give some time to think if it might be interesting for your audience and how to present it. An example for a minimalistic preparation are some powerpoint slides (these don’t have to be professional). That little preparation helps you to think your idea through (again) and make sure you present it well structured and in a way that is interesting for your audience.

3) the technology – what to expect

This is what you will be working with:

A projector with connection to your Laptop – no worries, we bring adapters. Another possibility is to bring your presentation on an USB stick and we’ll provide the computer. Or, of course, you can email us your presentation. We will also bring a presenter, so that you can move forward/backward in your presentation with a remote and don’t need to walk over to your laptops keyboard.

An electronic form of your presentation is preferred, since there are no whiteboards etc. for spontaneous notes.

For everyone who is worried: there are no video recordings of the unconf presentation/ no live stream – if that would scare you.

The unconference room fits up to 20 people. That is – compared to the main event – a rather limited space which means as a first time presenter that is a ideal (and not too frightening) number of listeners. And furthermore, to be heard, you won’t need a microphone. Just be there and enjoy your fist talk!

Last but not least – you are not alone!

We are there for you! Benny and Katharina from Tideways will be there for any questions you might have and support you!

Mail us if you have any questions before or during the unconference.

PHP Benelux – visit Tideways at the unconference

PHPBenelux 2018 Are you ready for some PHP fun? In two weeks, the PHP Benelux opens it doors. For us, it is a highlight in our conference calendar. The PHP Benelux is always very well organized and its special charme is that it’s a community conference organized by engaged members of the PHP community.

Since it is one of our favorite conferences, we decided to support the PHP Benelux and sponsor the unconference and give back to the community. In addition Benjamin and Katharina will also host the unconference and be your contact persons if you want to speak about a topic.

So why did we decide to especially support the unconference? Well, there are actually several reasons.

First of all, unconferences are a great opportunity for first time speakers to enter the stage. A not so big and possibly frightening stage that is. Benjamin for example started giving talks at conferences at an unconference himself (in his case ist was the unconf at DutchPHP 2010). So he speaks from experience, when he says that the initial barriers at the unconf should be significantly lower than giving your fist talk on the main stage of the conference.

If you want to be a future conference speaker, we would recommend to seize this chance to get some experience and to use your unconf talk as a reference. We will dedicate another blog post specifically to first-time-speakers so that you know what to expect and what to ideally prepare. Stay tuned 🙂

Then, your efforts will be rewarded. The best talk of the unconf wins a ticket and slot for next year’s PHP Benelux. Just to be clear: That means a full speaker package with hotel, travel, speakers dinner and a 1 hour talk-slot. Awesome, right?

And finally, the unconference is by definition very flexible. You might think about the more or less spontaneously filled agenda, but there is more this format offers. You also can experiment with the length of your talks (it doesn’t necessarily have to fit in a perfect 45min slot) or use the unconference to not just talk to the audience, but rather with it, i.e. with discussions.

Let’s say: With the unconf, the sky is the limit. Well, that is far fetched, but you get our point. The only limitation: your talk (presentation/discussion/performance…) should be interesting and useful for the auditorium.

Sounds fun, right?

So let us know, if you want to talk at the unconf (Tweet or DM @beberlei or send an e-mail). Of course you can do that spontaneously at the conference as well, but why not be the early bird?

If you have any questions – we are happy to help!

Introducing SQL and HTTP duration trace filters and advanced query language

Finding a specific trace you are interested in just got much easier with the addition of three new filtering features.

  1. You can now filter traces by duration or amount of executed SQL and HTTP queries in a trace:

    This allows you to find traces with SQL or HTTP behaviour that you are interested in.

  2. You can now view a list of the last 100 traces that you have looked at, or even filter it by additional criteria. You can find this option in the “User:” filter under the name “Last 100 viewed by me”.

  3. We have introduced a query language that allows you to filter by any field using a more complex set of operators and with the help of AND/OR conditions, to find exactly the traces you are looking for.

    You can find more details about the query language in the documentation.

In combination the response time, bottlenecks, events and service filters that we added last month, you now have much more filters at your disposal to find and fix problems in your application.

We are looking foward to your feedback and if you have ideas for new filters we are happy to hear from you, as we want to keep adding more filters in the future.

Introducing unlimited request plans

We are introducing new plans for Tideways and are retiring the request-based pricing on March 15th 2017. You can already visit the new pricing page with all the information.

New plans are billed per application and include unlimited monitored requests from unlimited servers. Tideways is primarily an “Always On” production profiler and tracing system and therefore pricing is now heavily influenced by how many traces we collect every minute and how long we store them for you. With the new plans, you decide on an upper limit of detailed traces collected from an application every minute, for example 25 traces/minute – which translates to roughly 1 million traces a month. Each new plan has a number of included traces/minute, but you can also increase the traces/minute limit in steps of 25. With this model, you have guaranteed fixed monthly prices you know in advance, based on your desired level of traces/minute, but independent of application size, architecture and host count.

If you are using Tideways as a traditional Profiler to manually generate Callgraph profiles, you will also be happy to hear that we increased the retention for manually triggered traces to 30 days, regardless of the plan. In the Lite plan this includes 10.000, in the Basic plan 25.000 and in the Standard plan 50.000 triggered callgraph traces per month. You can also purchase a dedicated upgrade to increase the retention to 60 days and add 250.000 additional callgraph traces/month.

For existing customers we are grandfathering all current plans and give you the choice to stay in your current plan or upgrade to the new plans if they suit you better.

What are the new prices? A Lite application with limited APM functionality and 24 hours retention costs 39€/application/month, the full APM functionality is available in either a Basic application with 3 days of retention starting at 89€/application/month or Standard application with 14 days of retention starting at 159€/application/month.

What is my benefit switching to the new unlimited request plans?

Our goal with these new plans is to make it simpler for you as a customer to calculate your Tideways costs up front and independent from month to month changes caused by server up- and down-scaling, seasonal business and application architecture. You decide on the level of visibility you want into your application and the duration we store this data for you and we optimize everything else. Instead of monitoring costs that directly scale with your application request volume, you can now decide yourself when and why to increase the amount of traces/minute because your application has grown in code-size and functionality, production traffic or both.

This is the next step away from the per-server pricing that many of our monitoring competitors sell. We think both servers and requests are a bad proxy for the value that you or your customers get from monitoring a particular application. Especially in this age of multi-cores, microservices, Docker and vertically scaled applications for increased reliability. You shouldn’t be punished for your choice of deployment technology, host topology or application architecture. With the new plans we can offer fair prices to customers that run on a single server and want to keep hundreds of traces every minute and customers that run on 10+ hosts but are fine with only a very limited visibility.

When you are upgrading to the new plans the minimal traces/minute configuration of 25 traces/minute for a basic plan is higher than the previous limit of 20 traces/minute that we built into the old plans.

I am not convinced, can I keep my old plan?

Yes, you can! We are grandfathering your current plan. You can continue to upgrade within tiers of the old per request model. You cannot subscribe to the old plans if you are not yet a customer. We do reserve the right to provide new features for the new plans only.

Remember that the new plans are designed to increase the visibility in your application, they store a higher amount of traces every minute than Tideways did before. Upgrading will give you access to more traces and better insights.

How does this affect Microservice/SoA architectures with multiple applications in Tideways?

We have released a new feature called “Services” last month, which allows you to collect data for a microservice/SOA-architecture into one application in Tideways and view performance statistics for each service individually. We suggest that you migrate your deployment to using services instead of multiple applications. Since this feature is only available to Medium (M) plans, if you have this problem and are subscribed to a Small (S) or Lite plan, please contact [email protected] and we activate the feature for you to prepare for a plan upgrade.

I have many tiny applications and the new pricing per application is bad for me

Unfortunately, if you have monitored dozens of tiny applications with a 3S or 10S plan before, then this pricing change will affect you the most. We realized in the last months, that for many features, continuous processing is necessary at the application level and unlimited applications is therefore not scalable for us with the current pricing. You will be able to support 4 applications (1 basic license + 3 staging licenses) for 69€/month if you are fine with just the bare minimum of monitoring visibility. Or you can just stay in the old pricing if it works better for you.

What about my staging, testing, QA and development environments? I have created additional applications in Tideways for them.

Both the Basic and Standard plan include 3 staging applications for free that you can use to collect this information without having to pay extra. This allows you to create applications for development, staging and testing environments. A staging application has 60 minutes retention, but has all the same features as a basic or standard application.

How is it possible to offer a fixed rate for unlimited monitoring on unlimited hosts?

The idea of unlimited request and server plans is in our minds for a while already, but it required a greater part of the backend engineering effort last year to support this offer. Our new data structures and processing pipeline is designed in such a way that a simple and lossless aggregation per minute is possible directly when collecting data on the daemon running on your server and again when we accept the data on our backend using an aggregation proxy. This is possible with the way we use HDRHistogram and several storage optimizations as explained in this previous post on our blog. Almost no aggregation or computations are necessary for data on our backend, we just store them on disk and index them in a database. We also automatically reduce the amount of monitoring detail for the long tail of transactions with very few requests. This way it doesn’t make much of a difference in terms of processing and storage if you have just one host, or hundreds of them. It does have the downside that monitoring data is only application-centric, not on the server-level, but we think that application-centric monitoring is much better suited to understand your the experience of your users anyways!

Launching the Tideways Company

Today we have a very exciting announcement: Qafoo and I have launched a new company together to turn my side project Tideways – a Profiler, Performance Monitoring and Exception Tracking tool for PHP – into a fully-fledged business. Last year I realized that I wanted to work more on Tideways, but with my projects going on at Qafoo investing more of my free time into it was not going to be sustainable in the long run. So we started planning to found a company together last year in September.

Last week all the planning and paperwork was finally completed and we have all our required registrations, a Steuernummer and a VAT number. Open for business!

As the founder of the new Tideways GmbH I will now focus on improving the performance monitoring and profiling products. In turn I will reduce my work as trainer and consultant for Qafoo to a part-time job. I am very happy that I could convince Qafoo to co-found Tideways with me, as Kore, Manuel and Tobias will invest some of their time to support me pushing Tideways forward.

At Qafoo we will continue our focus on training, consulting, tooling and developer support services. These last months in particular we have been working on new content for our testing, quality-assurance and architecture services to serve our existing and new customers and are very happy with the progress and feedback.

In such a busy moment when founding a company, we also want to reflect on the current journey and who helped us get here. All our customers and partners deserve a big thank you for using and loving Tideways. We are especially indebted to Thomas, SysEleven and ScaleCommerce founder, who was excited to roll out the very first version of Tideways. Also our first users Till and his team at Imagine Easy Solutions, Stefan and Benjamin from Shopware, Anton and Henrik from Sixt and Christian, Malte and Tobias from crosscan have earned a special mention for pushing us in this direction. Thank You!

Now, we require only a short moment of your time: When you login the next time, we will ask you to confirm a change to the terms of service regarding the new stewardship by the Tideways GmbH. We will contact every customer individually with details.

Apart from that nothing will change for you. Except that we think this is a big moment graduating from a side-project to a business that you can rely on to stay. You can look forward to all the improvements we have lined up in the next weeks and months.

Launching Tideways with transparent and flexible pricing

We are excited to launch the first version of Tideways to the general public this week, along with a new pricing model.

The new pricing is not turning Tideways upside down. In fact, the old plans are a limited subset of the new model as you can see later.

Plans: To infinity … and beyond!

Starting today, you only pay exactly what you use in Tideways. You will always pay a basic fee of 40 € for the first million traces and then you will be charged for the usage in packages of one million traces each. This is the equivalent of having infinitely many plans where discounts for size apply automatically. For detailed information about the volume-based offers please visit the pricing page.

Your main advantages with the new pricing model:

  1. Transparency and Dependability: No rapid jumps in monthly prices if your application traffic grows beyond a plan.
  2. Volume-Based Plan: you will save money by paying only for the traces collected from your application.

One more thing on data retention

We wanted to improve flexibility even more. During beta, all traces were kept for 14 days, however, we realized that the requirements regarding data retention vary extremely among our customers.

Because the retention of traces has a direct impact on how much storage space and processing is needed, we factored this variable in the monthly fee.

If you don’t need traces for 14 days, but only for three or even just one day, we grant you a considerable discount for each million traces. Equally, if you want to store traces for much longer (30 or 90 days) then you will be charged accordingly.

Pricing Calculator

We built a pricing calculator so that you can easily experiment with the costs for different amounts of traces and retention.

You can start by checking that the startup and business plans from the beta didn’t change much in price. Using the 14 days retention, the startup plan with 3 million requests/month is now 100€ instead of 99€ (+1€) and the business plan with 15 million requests/month is now 195€ instead of 199€ (-4€).

How about long-term, fixed-scope contracts?

If you are planning with a fixed budget and with at least one year of usage in advance, then we can talk about a fixed scope contract. Please contact [email protected] to get in touch with us.

Thank You

Thanks to you – our beta testers, early-adopters, new and prospective customers – and your feedback we were able to make Tideways amazing and tailored to your needs.

As always, please let us know if you have any questions regarding Tideways, we are looking forward to hearing from you!

Qafoo Profiler is now Tideways

Today we are unveiling our new product name Tideways replacing the working title Qafoo Profiler.

You can now find us under our new domain tideways.io, on Twitter @tidewaysio and on our new dedicated Github organization. The old qafoolabs.com and profiler.qafoolabs.com domains will continue to work indefinitely.

As for the meaning of the name, tideways are water streams visible during ebb in the wadden/north sea. You can find more information on Wikipedia (German and English).

Concerning the migration of packages, we are starting with a soft migration today. The old Debian and Packagist packages are still available as before, but we have added new Tideways packages:

  • Composer package “tideways/profiler” replaces the “qafoolabs/profiler” package.

  • Debian package “tideways-daemon” replaces the “qprofd” package.

  • Debian package “tideways-php” replaces the “qafoo-profiler-php” package.

We were careful to provide a backwards compatible API for QafooLabsProfiler PHP class so that your code will not break during an upgrade. A detailed migration guide exists to help you in the transition.

The old packages will keep working, but we are starting to send out update notices to everyone who is still running on the old code. We have no immediate plans to remove the old packages, because the protocols are compatible to each other. We have also decided against forcing upgrades to the new packages.

However, be aware that only by changing to the new tideways packages, you will receive automatic updates for PHP library, extension and daemon.

The documentation was changed to refer to the Tideways packages and code only.

The beta period will come to an end in the next weeks, the final features in testing and development at the moment include:

  • MacOS support with Homebrew
  • Alerts and Notifications for performance regressions and errors
  • Better support to identify slow queries, http requests and requests between different applications.
  • A commandline tool complementary to the Chrome extension to trigger traces for PHP scripts and REST APIs.

Follow us on Twitter @tidewaysio for updates.

We open the Beta for everyone today!

Six months ago the first line of code was written. Now we are finally opening the beta registration to everyone. Read the press release on our company blog.

So far our closed beta testers have measured 500 million requests and the Profiler has analyzed 7 million traces. We hope to increase this numbers a lot by giving everyone access to the Profiler starting today.

Our journey started by building a platform based on XHProf and during the closed beta we have moved beyond the original Facebook PHP extension to provide many additional features and performance optimizations that are necessary for isolating and fixing bottlenecks.

You can take a look at all the Features that we already support right now and a Roadmap of what we are working on.

During beta a lot of people have asked us about our pricing model and for the start of the open beta we are lifting the curtain.

We are transitioning to a paid beta using a simple per request pricing model. That means no need for you to count servers, applications or users. Plans start at 99€/month with 100.000 requests a day. See our pricing page for details. Get in touch if you have any questions about the pricing.

Why still keep the beta label? We are still working to improve the installation, packaging and setup of the Profiler for as many platforms as possible. The Profiler will stay in beta until we feel the setup experience is close to perfect.

What is next? The roadmap already contains a list of larger features that we are working on for the Profiler. If you want to keep informed about features and news subscribe to our mailing list or follow us on Twitter.

Introducing the Qafoo Profiler

We are excited to welcome you to the first blog-post about the Qafoo Profiler, a tool for PHP application performance and profiling.

Our profiler allows you to collect PHP response times and detailed profiling data on your applications. Gain immediate insights into how to improve your application’s performance. Use our knowledge on open-source PHP libraries, content-management-systems and ecommerce platforms to find performance bottlenecks.

For about a year we at Qafoo are working on the profiler as a side project. About one month ago we hit a first milestone and we have since reached out to friends for a first successful alpha test.

After gathering valuable feedback and new requirements we are now proud to lift the curtain on the Qafoo Profiler Closed Beta. We will continue to test the profiler with a selected amount of customers in the next weeks and will start inviting more testers very soon.

Much of our research has been on how to efficiently profile and transmit data from a PHP request to the Profiler platform with very low overhead. So far experiments have led to very promising results, using a local daemon that accepts data via UDP and unix socket.

Focus in the closed beta will be on scalability and fine-tuning of the profiling decisions. We have made excellent progress with Xhprof and expect to improve the results even more with custom changes to the extension.